我建立了表空间:userdata, 然后建立userdata用户, 赋予connect,create table权限, 但是在create table 的时候, 提示“ORA-01950表空间'GAMEDB'中无权限的问题”, 后来发现再赋予userdata用户resource 的权限就可以在表空间上面建立表了。 |
SQL> conn / as sysdba
已连接。
SQL> grant create table to userdata;
授权成功。
SQL> conn userdata/oracle
已连接。
SQL> create table abc(a int primary key,b int);
create table abc(a int primary key,b int)
*
ERROR 位于第 1 行:
ORA-01950: 表空间'USERDATA'中无权限
SQL> conn / as sysdba
已连接。
SQL> grant resource to userdata
2 ;
授权成功。
SQL> conn userdata/oracle
已连接。
SQL> create table abc(a int primary key,b int);
表已创建。
SQL>
这是因为虽然有建表的权限,但是没有写表空间的权限,还有一个create_any_table与create table的区别,就是前者可以为其他用户建表,而后者只能为自己建表。
[@more@]
这个resource权限都包括什么呢?
Let's examine RESOURCE. This is generally given to schema owners. Did you know that it has UNLIMITED TABLESPACE system privilege, making it able to create any table anywhere in the database – including the SYSTEM tablespace
RESOURCE角色权限可大了
SQL> SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';
GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE TYPE NO
RESOURCE CREATE PROCEDURE NO
RESOURCE CREATE TABLE NO
RESOURCE CREATE INDEXTYPE NO
RESOURCE CREATE OPERATOR NO
已选择8行。
grant connect,resource to user包括的权限
CONNECT角色: --是授予最终用户的典型权利,最基本的
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
RESOURCE角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/786540/viewspace-1004354/
,如需转载,请注明出处,否则将追究法律责任。