如何授予一个用户访问Oracle中其他用户的权限?
How to grant privileges to one user to access other users in Oracle?
有 3 个模式:DEMO1、DEMO2、DEMO3
我想授予 DEMO1 权限以在 DEMO2 而不是 DEMO3 上执行所有操作。
ALL 操作表示:Select、更新、插入、删除
如何在 Oracle SQL Developer 中授予权限?
你真的不能那样做。有许多 DDL 特权 - 正如 astentx 指出的那样 - 你要么被限制在你拥有的东西上,要么你可以影响系统中的 ANY table,而不仅仅是一个其他用户。没有中间立场,除非您还使用 add-on 企业产品,例如 Database Vault。如果您在谈论 DML(插入、更新、删除数据),则将特定的 table 权限授予一个角色并将该角色授予 DEMO1。
create role demo2_dml;
grant insert, update, delete on demo2.table_a to demo2_dml;
grant insert, update, delete on demo2.table_b to demo2_dml;
...
grant role demo2_dml to demo1;
alter user demo1 default role all;
或者,如果您还必须拥有 DDL 权限,您可以授予 DEMO1 proxy 权限以成为 DEMO2 并承担其对其对象的所有权限。
alter user demo2 grant connect through demo1;
然后使用 demo1[demo2]
作为用户名和 demo1 的密码进行连接:
connect demo1[demo2]/demo1password@database_service
demo1 然后变成 demo2(不需要知道 demo2 的密码)并且可以做 demo2 可以做的任何事情。然而,在执行此操作时,demo1 将无法访问其 own 对象。
有 3 个模式:DEMO1、DEMO2、DEMO3 我想授予 DEMO1 权限以在 DEMO2 而不是 DEMO3 上执行所有操作。
ALL 操作表示:Select、更新、插入、删除
如何在 Oracle SQL Developer 中授予权限?
你真的不能那样做。有许多 DDL 特权 - 正如 astentx 指出的那样 - 你要么被限制在你拥有的东西上,要么你可以影响系统中的 ANY table,而不仅仅是一个其他用户。没有中间立场,除非您还使用 add-on 企业产品,例如 Database Vault。如果您在谈论 DML(插入、更新、删除数据),则将特定的 table 权限授予一个角色并将该角色授予 DEMO1。
create role demo2_dml;
grant insert, update, delete on demo2.table_a to demo2_dml;
grant insert, update, delete on demo2.table_b to demo2_dml;
...
grant role demo2_dml to demo1;
alter user demo1 default role all;
或者,如果您还必须拥有 DDL 权限,您可以授予 DEMO1 proxy 权限以成为 DEMO2 并承担其对其对象的所有权限。
alter user demo2 grant connect through demo1;
然后使用 demo1[demo2]
作为用户名和 demo1 的密码进行连接:
connect demo1[demo2]/demo1password@database_service
demo1 然后变成 demo2(不需要知道 demo2 的密码)并且可以做 demo2 可以做的任何事情。然而,在执行此操作时,demo1 将无法访问其 own 对象。