Oracle - 如何授予用户对另一个用户对象的权限
我需要向用户 TARGETUSER 授予对用户 SOURCEUSER 的所有表进行选择/插入/更新的权限(我可以从 此处)以及运行其所有存储过程的能力。
基本上,如果我可以为 TARGETUSER 提供使用 SOURCE_USER 对象进行所有非 ddl 活动的能力,我不会抱怨。 我该怎么做呢?
I need to give to user TARGETUSER the rights to select/insert/update to all tables of user SOURCEUSER (I can figure this all out from here) and the ability to run all their stored procedures.
Basically, I wouldn't complain if I can give TARGETUSER the ability for all non-ddl activity with SOURCE_USER's objects. How do I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以编写一个简单的过程来执行此操作:
不确定您还要求什么。 您可以修改上述内容,为要提供给 targetuser 的权限添加额外的授予和/或 object_types。 正如 @stili 所暗示的,您可以使用角色做很多事情,但要小心 - 有些权限在通过角色授予时不起作用。
You can write a simple procedure to do this:
Not sure exactly what else you're asking for. You can modify the above to add additional grants and/or object_types for the privileges you want to provide to targetuser. As @stili implies, you can do a lot with roles, but be careful - some permissions do not work when granted via roles.
要生成 SQL 脚本,您可以使用以下内容,类似于 DCookie 建议的解决方案。
一般来说,我建议使用角色来避免为每个用户授予访问权限。
如果使用角色,请以要从中复制角色的用户身份运行以下 SQL。 您还可以包含其他选项,例如
admin_option
和default_role
。或者,您可以查询 dba_role_privs 来获取特定用户的角色:
To generate SQL script you could use the following, similar to the solution suggested by DCookie
Generally, I would suggest using roles to avoid granting access rights for each user.
If using roles, run the following SQL as user you are copying roles from. You could also include other options like
admin_option
anddefault_role
.Alternatively you could query
dba_role_privs
to get the roles of a specific user: