假设当前用户为"user1",新用户为"user2",表名为"table1",需要让"user2"访问"table1"中的"column1"和"column2"列。
- 创建一个用户角色,并授予该角色对"table1"的访问权限和"column1"、"column2"的列级访问权限:
CREATE ROLE role1;
GRANT SELECT ON table1 TO role1;
GRANT SELECT (column1, column2) ON table1 TO role1;
- 为"user2"分配"role1"角色:
GRANT role1 TO user2;
- 现在"user2"可以访问"table1"中的"column1"和"column2":
SELECT column1, column2 FROM table1;
请注意,如果"user1"是"table1"的所有者或具有"SELECT ANY TABLE"系统权限,则可以直接在"table1"上授予"role1"权限。否则,必须使用对象所有者或具有"GRANT ANY OBJECT PRIVILEGE"系统权限的用户作为"table1"的所有者来授予权限。