登录Oracle时,只为用户选择一个角色

时间:2013-09-30 23:30:30

标签: vb.net oracle

我有一个oracle数据库,其中有两个角色分配给同一个用户。

用户将从.Net应用程序连接。

由于每个角色都有自己的权限,我希望在使用我的应用程序时,只考虑一个角色。因此,用户将选择在登录应用程序时要考虑的角色。与其他角色相关的特权不会“活跃”。

例如

角色1可以访问表A. 角色2可以访问表B

理论上,用户可以访问A&乙

使用我的申请时:

选择1或2

如果为1,则仅显示A表 如果2,只显示B表

请问有可能吗?

谢谢

1 个答案:

答案 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命令激活它们。您也可以使用密码保护角色。