[英]Oracle : Grant Create table in another schema?
我有两个用户:Schema1 和 Schema2
如何将 Schema2 上的 Create Table 权限授予 Schema1 ?
我一直在转身,我很困惑。 我试过 :
从 Schema2 我试过了,
GRANT CREATE TABLE TO SCHEMA1 WITH ADMIN OPTION;
但似乎这将创建表授予 Schema1 在其自己的 Schema 中而不是在 Schema2 中。
请问有什么想法吗?
谢谢你。
允许非DBA用户在另一个模式中创建表的唯一方法是为用户提供CREATE ANY TABLE
系统特权。
此权限只能由具有DBA权限的用户授予SCHEMA1。
您想要授予create ANY table
:
grant create any table to schema1;
any
“修饰符”都允许创建除自己的模式之外的表。
更好的解决方案(最小化CREATE ANY TABLE
权限带来的安全威胁......)
GRANT EXECUTE ON schema2.procedure_name TO schema1;
这是一个简单的概念......我在以前的工作中使用过这样的概念。
oracle 无法为不同的用户提供对 DDL/DML/SELECT 操作的特定模式的访问,这真的很糟糕。
您可以使用 CREATE ANY、SELECT ANY 等权限。 但这些都是全球特权。 例如,如果您向 user1 授予 CREATE ANY 特权,则 user1 将能够在任何其他模式中创建 TABLE,而不仅仅是在其他预期模式上。
这是oracle数据库系统的一个缺点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.