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>