一、授权

建用户的时候通常都可以选择一个default tablespace,但是在没有授权的情况下该用户也无法往该表空间写数据,需要进行授权。授权有全局授权和通过quota限制两种情况(quota配额可以防止某个用户过多使用某个表空间中的空间)
1.授予某个用户全局表空间的权限(通过命令单独授予)

grant unlimited tablespace to username;

2.授予某个用户全局表空间的权限(通过角色来授予)

通过角色来授予的时候通常是授予resource角色。
注意:虽然resource角色自己没有带unlimited tablespace的权限,但是把这个角色授予用户的时候,unlimited tablespace权限会自动带上
1)查看resource角色底下带的权限,没有unlimited tablespace权限

SQL> SELECT * from Dba_Sys_Privs s WHERE s.grantee='RESOURCE';

GRANTEE                                                      PRIVILEGE                                                                ADMIN_
------------------------------------------------------------ -------------------------------------------------------------------------------- ------
RESOURCE                                                     CREATE TRIGGER                                                           NO
RESOURCE                                                     CREATE SEQUENCE                                                          NO
RESOURCE                                                     CREATE TYPE                                                              NO
RESOURCE                                                     CREATE PROCEDURE                                                         NO
RESOURCE                                                     CREATE CLUSTER                                                           NO
RESOURCE                                                     CREATE OPERATOR                                                          NO
RESOURCE                                                     CREATE INDEXTYPE                                                         NO
RESOURCE                                                     CREATE TABLE                                                             NO

2)把resource角色授予用户

SQL> grant resource to username;

Grant succeeded.

3)查看用户拥有的权限,可以发现自己带上了unlimited tablespace(另外这个时候可以去看dba_ts_quotas,这样授权的用户没有体现出来)

SQL> SELECT * from Dba_Sys_Privs s WHERE s.grantee='USERNAME' ;

GRANTEE                                                      PRIVILEGE                                                                ADMIN_OPTION
------------------------------------------------------------ -------------------------------------------------------------------------------- ------
USERNAME                                                       UNLIMITED TABLESPACE                                                     NO
USERNAME                                                       CREATE TABLESPACE                                                        NO
USERNAME                                                       CREATE SESSION                                                           NO

3.授予某个用户个别表空间的权限

1)授予某个用户完全访问某个表空间的权限

ALTER USER username QUOTA UNLIMITED ON rcat 

---特别的,在授予完权限后查看dba_ts_quotas表:
SQL>   SELECT * from Dba_Ts_Quotas z WHERE z.username='USERNAME';

TABLESPACE_NAME                                              USERNAME                                                  BYTES  MAX_BYTES     BLOCKS MAX_BLOCKS DROPPE
------------------------------------------------------------ ------------------------------------------------------------ ---------- ---------- ---------- ---------- ------
RCAT                                                         USERNAME                                                   524288         -1         64         -1 NO
此时max_bytes 为-1,即不受限制。

2)授予某个用户有限访问某个表空间的权限

ALTER USER username QUOTA 1M ON rcat; 
SQL>   SELECT * from Dba_Ts_Quotas z WHERE z.username='USERNAME';

TABLESPACE_NAME                                              USERNAME                                                  BYTES  MAX_BYTES     BLOCKS MAX_BLOCKS DROPPE
------------------------------------------------------------ ------------------------------------------------------------ ---------- ---------- ---------- ---------- ------
RCAT                                                         USERNAME                                                   524288    1048576         64        128 NO
---可以看到MAX_BYTES是1MB

二、回收权限
1.全局

revoke unlimited tablespace from username;

2.个别表空间

ALTER USER username  QUOTA 0 ON rcat 
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐