ORA-01950及oracle表空间配额(quota)

一、情况说明

创建用户时只有connect角色及CREATE TABLE(为用户创建表的权限),INSERT ANY TABLE(向任意表中插入行的权限)两个系统权限时,当在此用户下创建表时会有报错:ORA-01950: 对表空间 ‘USERS’ 无权限
美女图吧www.meimeitu8.com
二、针对此报错解决方法

以sys用户登陆数据库,执行以下语句(对指定表空间不做限额):

alter user 数据库用户名quota unlimited on USERS;

三、事例分析情况步骤:

1、查看事例用户jktest已有角色与权限

授权:
grant connect,CREATE TABLE,INSERT ANY TABLE to jktest;

1.1 jktest有连接角色:

SYS@orcl>select * from dba_role_privs where grantee=‘JKTEST’;
GRANTEE GRANTED_ROLE ADM DEF


JKTEST CONNECT NO YES

1.2 jktest拥有系统的权限如下:

SYS@orcl>select * from dba_sys_privs where grantee=‘JKTEST’;
GRANTEE PRIVILEGE ADM


JKTEST CREATE TABLE NO
JKTEST INSERT ANY TABLE NO

2、Oracle 用户对表空间配额quota操作说明(两种方式说明如下)

2.1 创建用户时指定限额(指定用户在某表空间限制)

sqlplus / as sysdba
SQL> create user jktest identified by jktest default tablespace users temporary tablespace temp quota 10M on users;
User created.

查询用户配额的信息:
SQL> select tablespace_name,username,max_bytes from DBA_TS_QUOTAS where username=‘JKTEST’;
TABLESPACE_NAME USERNAME MAX_BYTES


USERS JKTEST 10485760

2.2 更改用户的表空间限额:

……不对用户做表空间限额控制:
SQL> grant unlimited tablespace to jktest;
Grant succeeded.
这种方式是全局性的. 即修改用户对所有表空间的配额。

……如果我们想改某个具体的,即针对用户的某个特定的表空间不做限额(对指定表空间不做限额),可以使用如下SQL:
SQL> alter user jktest quota unlimited on USERS;
User altered.

……查看配额:
SQL> select tablespace_name,username,max_bytes from DBA_TS_QUOTAS where username=‘JKTEST’;
TABLESPACE_NAME USERNAME MAX_BYTES


USERS JKTEST -1
这时候max_bytes 为-1,即不受限制。

3、回收用户对表空间的配额(同样两种方式):

3.1 全局:
SQL> revoke unlimited tablespace from jktest;
Revoke succeeded.

……在查看配额,已经没有了相关信息:
SQL> select tablespace_name,username,max_bytes from DBA_TS_QUOTAS where username=‘JKTEST’;
no rows selected

3.2 针对某个特定的表空间:
SQL> alter user jktest quota 0 on users;
User altered.
–如果用户已经被授予了unlimited tablespace权限的话,那么alter user jktest quota 0 on users;限制是不起作用的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值