SQL语句(4)--- 用户访问控制

1. 查询某一个用户默认使用的表空间语句

 1 SQL> select username,default_tablespace from dba_users where username='SYS';
 2 
 3 USERNAME   DEFAULT_TABLESPACE
 4 ---------- ------------------------------------------------------------
 5 SYS       SYSTEM
 6 
 7 SQL> select username,default_tablespace from dba_users where username='SCOTT';
 8 
 9 USERNAME   DEFAULT_TABLESPACE
10 ---------- ------------------------------------------------------------
11 SCOTT       USERS
12 
13 SQL> select username,default_tablespace from dba_users where username='HR';
14 
15 USERNAME   DEFAULT_TABLESPACE
16 ---------- ------------------------------------------------------------
17 HR       USERS

2. 在PDB中新创建的用户,如果在没有指定表空间的情况下,默认使用的是 USERS 表空间

3. 新创建的用户,默认是不能登录数据库,也不能创建表,因为没有 CREATE SESSION 和 CREATE TABLE 权限

4. 在获得上面两个权限后,新用户登录数据库后创建的表(之所以可以创建表,是因为在11R2后,有了延迟段,即可以创建一张空表,在插入第一行数据的时候再分配段,因为段是消耗空间的),是不能插入数据的,因为没有表空间配额

 1 SQL> create user testerp identified by testerp; ---创建一个名为 TESTERP的用户,没有指定表空间
 2 
 3 User created.
 4 
 5 SQL> select username,default_tablespace from dba_users where username='TESTERP'; ---查看TESTERP默认使用的表空间
 6 
 7 USERNAME   DEFAULT_TABLESPACE
 8 ---------- ------------------------------------------------------------
 9 TESTERP    USERS
10 
11 SQL> grant create session to testerp; ---授权CREATE SESSION权限给TESTERP
12 
13 Grant succeeded.
14 
15 SQL> conn testerp/testerp@erp  ---TESTERP可以正常登录数据库
16 Connected.
17 SQL> create table erp1(id number);  ---TESTERP不能创建表,因为没有CREATE TABLE权限
18 create table erp1(id number)
19 *
20 ERROR at line 1:
21 ORA-01031: insufficient privileges
22 
23 
24 SQL> conn sys/oracle@erp as sysdba
25 Connected.
26 SQL> grant create table to testerp;  ---切换到SYS用户,授权CREATE TABLE给TESTERP
27 
28 Grant succeeded.
29 
30 SQL> conn testerp/testerp@erp
31 Connected.
32 SQL> create table erp1(id number);  ---用TESTERP登录数据库后,可以正常创建表,因为在11g R2以后出现了 延迟段
33 
34 Table created.
35 
36 SQL> insert into erp1 values(1); --- 创建的表是不能插入数据的,因为没有空间配额QUOTA
37 insert into erp1 values(1)
38             *
39 ERROR at line 1:
40 ORA-01950: no privileges on tablespace 'USERS'
41 
42 
43 SQL> conn sys/oracle@erp as sysdba
44 Connected.
45 SQL> alter user testerp quota 1m on users;  ---给TESTERP设置空间配额为1M
46 
47 User altered.
48 
49 SQL> conn testerp/testerp@erp
50 Connected.
51 SQL> select * from erp1;
52 
53 no rows selected
54 
55 SQL> insert into erp1 values(1);  ---可以正常插入数据
56 
57 1 row created.
58 
59 SQL> select * from erp1;
60 
61     ID
62 ----------
63      1
64 
65 SQL>
原文地址:https://www.cnblogs.com/eniniemand/p/14016345.html