我有一个oracle数据库,其中有两个角色分配给同一个用户。
用户将从.Net应用程序连接。
由于每个角色都有自己的权限,我希望在使用我的应用程序时,只考虑一个角色。因此,用户将选择在登录应用程序时要考虑的角色。与其他角色相关的特权不会“活跃”。
角色1可以访问表A. 角色2可以访问表B
理论上,用户可以访问A&乙
使用我的申请时:
选择1或2
如果为1,则仅显示A表 如果2,只显示B表
请问有可能吗?
谢谢
答案 0 :(得分:0)
使用ROLES是一种方式:
CREATE ROLE roleA;
CREATE ROLE roleB;
GRANT SELECT ON tableA to roleA;
GRANT SELECT ON tableB to roleB;
GRANT roleA to TheUser;
GRANT roleB to TheUser;
当用户在您的应用程序中选择一个角色时,请发出相应的SET ROLE命令:
用户选择1:
SET ROLE roleA;
否则,
SET ROLE roleB;
由于角色不是默认值,因此只能通过SET ROLE命令激活它们。您也可以使用密码保护角色。