DBA角色: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE角色:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT角色:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
给oracle添加一个用户时一般都分配个connect、resource 角色就行了如:
grant connect,resource to eygle02;
但这里connect 角色有一个 UNLIMITED TABLESPACE 权限,也就是eygle02这个用户可以在其他表空间
里随意建表。
Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0
Connected as SYS
SQL> select * from dba_sys_privs where grantee='eygle02';
GRANTEE PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
eygle02 UNLIMITED TABLESPACE NO
SQL>
一般DBA要把这个 UNLIMITED TABLESPACE权限关掉
SQL> revoke unlimited tablespace from eygle02; #回收unlimited tablespace权限
Revoke succeeded
SQL> alter user eygle02 quota unlimited on eygle02; #其中后面eygle02是表空间名,quota是为了限制用户对表空间的使用
User altered
SQL>
经过这样修改,用imp就不会导入到其他表空间的情况了。
查询resource角色所具有的系统权限
SQL> select * from dba_sys_privs where GRANTEE='RESOURCE';
查看用户所具有的角色
SQL> select * from dba_role_privs where GRANTEE='TEST_PRIVS';
查询用户所具有的系统权限
SQL> select * from dba_sys_privs where GRANTEE='TEST_PRIVS';
查询表空间
SQL> select TABLESPACE_NAME,USERNAME,BYTES,MAX_BYTES from dba_ts_quotas;