0

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

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

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

例如

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

所以理论上用户可以访问A&B

使用我的应用程序时:

选择 1 或 2

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

请问这可能吗?

谢谢

4

1 回答 1

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

于 2013-10-01T00:44:17.083 回答