oralce 授权问题 刚学习oracle不久,对于权限碰到一个问题,我创建了一个表空间TESTTABLESPACE,创建了一个用户test1,test1的默认表空间为TESTTABLESPACE,就是刚刚新建的那个,然后新建了一个角色developer,然后为developer授权,grant resources,connect to developer,执行成功后,然后用developer为test1授权,再用test1登录,登录成功后想创建一个新表,但是发现不能创建,提示我没有权限在TESTTABLESPACE这个表空间里面创建表。请高手帮我解答一下,这是什么原因。 Oracle 授权 [解决办法] 还需要给用户分配表空间限额: GRANT UNLIMITED TABLESPACE TO TEST1; 或者 ALTER USER TEST1 QUOTA UNLIMITED ON TESTTABLESPACE;
CREATE USER TEST1 IDENTIFIED BY TEST1 DEFAULT TABLESPACE TEST; CREATE ROLE DEVELOPER; GRANT RESOURCE,CONNECT TO DEVELOPER; grant developer to test1; --TEST1/TEST1 CREATE TABLE T(IDX INT); SELECT * FROM T; [解决办法]
select table_name,tablespace_name from user_tables;
TABLE_NAME TABLESPACE_NAME ------------------------- --------------- T1 TEST
select username,default_tablespace from user_users;
USERNAME DEFAULT_TABLESPACE ---------- --------------------- TEST1 TEST
具体操作 用sys用户登录的, --创建表空间 create tablespace TEST_TS datafile 'E:\oracle\oradata\TESTTABLESPACE1.dbf' size 10M autoextend on next 5m maxsize 20m, 'E:\oracle\oradata\TESTTABLESPACE2.dbf' size 10M autoextend on next 5m maxsize 20m --创建用户 create user test1 identified by test1 default tablespace TEST_TS temporary tablespace temp; --创建开发者角色 create role developer; --给开发者角色授权 grant connect,resource to developer; --给用户授权 grant developer to test1;