不应使用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?
答案 0 :(得分:2)
这是我不同意Tom Kyte的极少数情况之一。在我看来,将SYS对象的权限授予SYS是完全合理的。这同样适用于SYSTEM。
答案 1 :(得分:1)
您正在EXECUTE
拥有的软件包授予SYS
权限,您无法在其中指定其他模式名称。它必须是SYS
,或者您可以在这种情况下删除架构名称,只需使用GRANT EXECUTE ON dbms_pipe TO user_name;
答案 2 :(得分:0)
我将获取需要授予特权的所有对象,并创建具有这些特权的特殊角色。与多个用户的多次授权相比,此角色更易于管理。
我也会问一个问题:你为什么需要这个?可以这样做吗?这是好的设计吗?