在SYS拥有的对象上授予权限的最佳和最安全的方法

时间:2013-10-29 21:43:46

标签: oracle database-security

不应使用SYS和SYSTEM用户,因为存在损坏SYS模式的风险:“通常,除非文档告诉您,否则您将永远不会以sys或系统身份登录,它们是我们的内部数据字典帐户,不是为了你的用途。忘记他们的存在,你将得到最好的服务。“ (http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2659418700346202574

向用户授予SYS权限的最佳和最安全的方法是什么?例如:

GRANT EXECUTE ON sys.dbms_pipe TO foobar;

我应该使用哪个用户代替SYS或SYSTEM?

3 个答案:

答案 0 :(得分:2)

这是我不同意Tom Kyte的极少数情况之一。在我看来,将SYS对象的权限授予SYS是完全合理的。这同样适用于SYSTEM。

答案 1 :(得分:1)

您正在EXECUTE拥有的软件包授予SYS权限,您无法在其中指定其他模式名称。它必须是SYS,或者您可以在这种情况下删除架构名称,只需使用GRANT EXECUTE ON dbms_pipe TO user_name;

答案 2 :(得分:0)

我将获取需要授予特权的所有对象,并创建具有这些特权的特殊角色。与多个用户的多次授权相比,此角色更易于管理。

我也会问一个问题:你为什么需要这个?可以这样做吗?这是好的设计吗?