oracle刚创建的用户获取权限

当一个用户刚被创建时是不具备任何权限的,因此要在该用户模式下创建表,需授予CREATE SESSION、CREATE TABLE、以及UNLIMITED TABLESPACE(或分配配额)权限,因为: 当用户要连接到数据库时必须拥有CREATE SESSION权限 当用户要创建表时必须拥有CREATE TABLE权限,同时用户还需要在表空间中拥有配额或者被授予UNLIMITED TABLESPACE。

现在我们来做一个测试: 斜体代表在sys用户下的操作,加粗代表在用户test下的操作:

1)、创建用户TEST,密码为passwd_1:

 SQL> CREATE USER test  IDENTIFIED BY passwd_1 ; 用户已创建

 2)当用TEST连接数据库时: SQL> conn test/passwd_1

ERROR: ORA-01045: user TEST lacks CREATE SESSION privilege; logon denied 警告: 您不再连接到 ORACLE。

//因为缺少CREATE SESSION的权限,登陆失败。

 3)利用SYS给TEST授予CREATE SESSION权限: SQL> grant create session to test; 授权成功。

4)SQL> conn test/passwd_1 已连接。

5)在test的方案中创建表exam1:

SQL> create table exam1(student_id int, paper_id int);

 create table exam1 * ERROR 位于第 1 行: ORA-01031: 权限不足

//因为未给TEST用户授予create table 权限,因此不能够创建表exam1.

6) 给TEST用户授予CRETE TABLE 权限 SQL> grant create table to test; 授权成功。

7)SQL> create table exam1 (student_id int, paper_id int);

 create table exam1 * ERROR 位于第 1 行: ORA-01950: 表空间'SYSTEM'中无权限

//因为在创建用户时没有指定表空间,因此默认的表空间是SYSTEM表空间,而TEST用户还需要在表空间SYSTEM中既没有拥有配额又没有被授予UNLIMITED TABLESPACE权限,因此对于这种情况有两种解决办法:

第一种方法: SQL> alter user test  quota 15m on system; 用户已更改。

//在SYSTEM表空间中,给用户TEST分配15M的使用空间

SQL> create table exam1 (student_id int, paper_id int); 表已创建

第二种方法: SQL> grant unlimited tablespace to test; 授权成功。

SQL> create table exam2  (student_id int, paper_id int); 表已创建

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值