不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。
随笔 - 156, 文章 - 1, 评论 - 2, 阅读 - 10万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

Q:Oracle表空间使用权限错误:ORA-01950

Posted on   三年三班王小朋  阅读(1554)  评论(0编辑  收藏  举报

使用A用户账号(默认表空间tablespace_A),A用户表中插入数据报错ORA-01950

报错处理方法:

方法1:授予用户A unlimited tablespace权限

grant unlimited tablespace to A;

方法2:分配表空间使用配额(推荐)

alter user A quota unlimited on tablespace_A;

注意:unlimited tablespace 可以对所有表空间进行操作;所以生产环境尽量不要放开unlimited tablespace权限,尽量不要让人操作system 及 sys 表空间。

回收和修改表空间

revoke unlimited tablespace from A;
alter user abc quota unlimited on A;

相关数据字典:

  • dba_ts_quotas:所有用户的表空间配额
  • user_ts_quotas:当前用户的表空间配额
在两个数据字典中,max_bytes字段就是表示表空间限额的值了,单位是B,其中-1代表没有限制,其他的值多少就是多少的限额了。
 
unlimited tablespace权限特点:
  1. 系统权限unlimited tablespace不能被授予role,只能被授予用户。也就是说,unlimited tablespace系统权限不能包含在一个角色role中
  2. unlimited tablespace没有被包括在resource role和dba role中,但是unlimited tablespace随着resource或者dba的授予而授予用户的。也就是说,如果将role角色授予了某个用户,那么这个用户将会拥有unlimited tablespace系统权限
  3. unlimited tablespace不能伴随这resource被授予role而授予用户。也就是说加入resource角色被授予了role_test角色,然后把role_test授予了test用户,但是此时unlimited tablespace没有被授予test用户
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示