<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

今天创建了一个用户zy,给用户赋予了create table的权限,可还是不能建表。
1、创建用户语句:

Create user zy
Identified by zy123
Default tablespace zy;

 

2、Zy用户所拥有的系统权限:

SQL> select * from user_sys_privs;

 

USERNAME   PRIVILEGE           ADMIN_OPTION
----------------  -------------------------------- --------------
ZY         CREATE TABLE             YES
ZY         CREATE SESSION           NO
ZY         SELECT ANY TABLE        YES

 

3、Zy用户建表报错:

SQL> create table t1
  2  as
  3  select * from all_tables;

 

ORA-01950: 对表空间zy无权限;

 

ORA-01950错误分析

用户没有resource权限。
在修改了用户的表空间后,在用户中创建表时会出现以下的错误:
ORA-01950: 表空间'HDNHG'中无权限
这个时候就要给修改了表空间的用户重新分配权限如:
GRANT CONNECT , RESOURCE  TO username;
再切换到该用户下创建表OK!
总的来说这个错误是由于对表空间操作的权限不足造成的,所以这个时候就可以检查出错之前对于所操作的表空间有哪些权限可能被revoke(或者说原来就没有grant),然后重新赋予相应的权限。

 

zy用户赋予connectresource权限:

SQL> grant connect,resource to zy;

 

Grant succeeded

 

再来用zy用户建表:

SQL> create table t1
  2  as
  3  select * from all_tables;

 

Table created
成功!

 
(1)      查看所有用户:
select * from dba_users;
select * from all_users;
select * from user_users;

(2)      查看用户或角色系统权限:

select * from dba_sys_privs;
select * from user_sys_privs;
(3)      查看用户对象权限:

select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
(4)      查看所有角色:

select * from dba_roles;
(5)      查看用户或角色所拥有的角色:

select * from dba_role_privs;
select * from user_role_privs;