我知道我可以使用 View 来授予对表中属性子集的访问权限。但是我怎样才能只授予对特定元组的访问权限呢?假设我有一个注册学生表,一个用户名属性,然后是其他一些像 degree_status,我如何授予访问权限,以便用户 A 只能从表中选择与用户名 A 对应的元组?我有一个数据库考试,我正在研究一些过去的论文,我遇到了这个问题,但我不知道如何回答它,我无法从我的书“Dtabase System:数据库设计的实用方法”中找到如何做, 实现与管理'
非常感谢任何帮助!
马特
最佳答案
说你得到了:
Table items (item_id, ...)
Table users (user_id, ...)
Table users_permissions( user_id, item_id, perm_type )
你可以像这样创建一个 View :
SELECT i.*, p.perm_type
FROM items JOIN users_permissions USING (item_id)
WHERE user_id = get_current_user_id();
用户可以从此 View 中进行选择,但不能删除限制权限的 WHERE 和 JOIN。
get_current_user_id() 函数可能是主要问题;)
关于sql - 向 PostgreSQL 上的用户授予对表子集的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6004357/