我知道我可以使用视图来授予对表中属性子集的访问权限。但是,如何只授予对特定元组的访问权限?假设我有一个注册学生的表格,一个用户名属性,然后是诸如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();
用户可以从该视图中选择,但不能删除限制权限的WHERE和JOIN。
get_current_user_id()函数可能是主要问题;)