我需要能够创建任何东西,特别需要拥有调试权限。
我家里有一个Oracle数据库,我想对我的工作PC数据库运行它的导出脚本,但我不想使用系统用户。
我尝试了grant connect,resource,dba to myuser;
但我仍然无法创建视图!
答案 0 :(得分:1)
这是一篇简短的文章,展示了如何向Oracle中的用户授予“所有权限”,更重要的是,需要具备哪些权限才能执行此操作。这是我最近对其中一个新闻组/邮件列表发布的帖子。这仅供参考,因为它是有用的知识但是,这里应该强调的一个重要事实是我无法想到任何情况或何时应该授予所有人特权。这根本就没必要。正确完成工作并找出手头工作所需的确切权限并授予这些权限。授予所有权限是一种安全风险,因为这意味着具有这些权限的用户可以执行数据库中的任何操作。
请记住始终使用最小权限原则并授予所需内容。不要仅仅为了快速完成工作而授予一切。这是示例代码!
Connected to:
Personal Oracle9i Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
SQL>
SQL> sho user
USER is "SYSTEM"
SQL> select * from system_privilege_map
2 where name like '%PRIV%';
PRIVILEGE NAME PROPERTY
---------- ---------------------------------------- ----------
-167 GRANT ANY PRIVILEGE 0
-244 GRANT ANY OBJECT PRIVILEGE 0
SQL>
SQL> -- Create a new user with just create session (to log on) and grant
SQL> -- any privilege to, well grant all privileges.
SQL> create user emil identified by emil;
User created.
SQL> grant create session, grant any privilege to emil;
Grant succeeded.
SQL> -- because we want to test this privilege create a second user to
SQL> -- test it with
SQL> create user zulia identified by zulia;
User created.
SQL> -- connect as emil and grant all privileges to Zulia
SQL> connect emil/emil@sans
Connected.
SQL> grant all privileges to zulia;
Grant succeeded.
SQL> -- connect as system and find out if it worked.
SQL> connect system/manager@sans
Connected.
SQL> select count(*),grantee
2 from dba_sys_privs
3 where grantee in ('MDSYS','EMIL','ZULIA')
4* group by grantee
SQL> /
COUNT(*) GRANTEE
---------- ------------------------------
2 EMIL
139 MDSYS
139 ZULIA
SQL>
我们使用MDSYS
作为检查点,MDSYS
具有授予它的所有权限
默认情况下,在Oracle的默认安装中。你需要的特权
因此是GRANT ANY PRIVILEGE