在Oracle中创建一个拥有所有权限的用户

65

我正在谷歌搜索如何创建一个用户并授予他所有权限。

我找到了这两种方法:

第一种方法:

create user userName identified by password;
grant connect to userName;
grant all privileges to userName;

第二种方法:

grant connect , resource to userName identified by password;

那么这两种方法有什么不同呢?

2个回答

100

有两个不同之处:

有两种方法创建用户并向其授予某些权限。

create user userName identified by password;
grant connect to userName;

并且

grant connect to userName identified by password;

完全相同。它创建一个用户并授予连接角色。

不同的结果

资源是Oracle中的一个角色,它赋予您创建对象(表、过程等等,但没有视图!)的权限。ALL PRIVILEGES授予更多的系统特权。

要授予用户所有权限,请运行第一段代码或

grant all privileges to userName identified by password;

2
当我执行命令“grant all privileges to testuser identified by testuser;”时,我收到错误消息:“ORA-65052:语句涉及具有不同容器范围的操作”。这是什么问题?我正在使用Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production。 - vinsinraw
2
我收到了“ORA-65049:不允许在此容器中创建本地用户或角色”的错误信息。 - kammy

4

我的问题是,在oracle 11g版中,我无法使用我的“scott”用户创建视图。以下为解决方案:

我的情况下的错误信息

SQL>create view v1 as select * from books where id=10;

权限不足。

解决方案

1)打开命令提示符并将目录更改为Oracle数据库的安装位置。 在我的情况下,我是在E驱动器中下载的,因此我的位置是 E:\app\B_Amar\product\11.2.0\dbhome_1\BIN> 到达该位置后,您必须输入sqlplus sys as sysdba

E:\app\B_Amar\product\11.2.0\dbhome_1\BIN>sqlplus sys as sysdba

2)输入密码:这里您必须输入安装Oracle软件时设置的密码。

3)如果要创建新用户,则可以创建,否则将所有特权授予现有用户。

创建新用户

SQL>create user abc identified by xyz;

这里abc是用户,xyz是密码。

将所有特权授予abc用户

SQL>grant all privileges to abc;

 grant succeeded. 

如果您看到此消息,则意味着所有特权都已授予abc用户。

4) 现在从cmd中退出,进入SQL PLUS并连接到用户,即输入您的用户名和密码。现在您可以愉快地创建视图了。

在我的情况下

在cmd中E:\app\B_Amar\product\11.2.0\dbhome_1\BIN>sqlplus sys as sysdba

SQL>grant all privileges to SCOTT;

grant succeeded.

现在我可以创建视图。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接