oracle的权限以及相关问题的解决方法

grant 用来分配权限给用户,角色和公共角色,以使其可以访问数据库的对象,授权也允许将oracle数据库中的权限授予用户和角色,授权也可以用来将角色授予其他用户参见本章后的对角色的讨论。
对象的授权,允许将不同级别的访问权限授予数据库中的特定对象。访问的目标可以非常详细,例如可以授权只访问表中的特定列。
有多重不同的对象授权,他们都可以用于各种不同的对象,例如,alter grant命令可以用来授予表发出的alter table命令的权限或者授予序列发出alter sequence命令的权限。
可以通过grant命令的all参数将特定对象的所有权限都授予某个用户,例如,如果要使用SCOTT用户能够对EMP表执行所有操作,则可以发出 grant all on emp to scott命令。
revoke命令用来收回授予用户。角色或者普通用户的权限。
要收回一个对象权限,下列条件必须有一个为真:
1.必须已将该对象权限授予要将其收回的用户。
2.必须要有 grant any object privilege的系统权限。
eg. 要收回APP_USER_ONE用户select any table 的系统权限:
revoke select any table from app_user_one;
下例收回APP_USER_ONE用户的create session的权限:
revoke create session from app_user_one;

相关的错误:
ora-01031 权限不够 如果试图改变某用户的密码而没有相应的权限,就会产生这个错误。
ora-01045 用户缺少create session权限;登录被拒绝。 试图连接某个没有create session的权限的用户,有权限的用户才能够连接。授予用户create session权限,并重试。
ora-01917 用户或者角色不存在 试图将访问的对象、角色或者系统的权限授予某个不存在的用户。检查用户名已确保正确。
ora-01924 角色没有授权或者不存在 试图将set role 命令激活某个角色,但没有这样的权限或者该角色不存在。检查角色是否存在以及是否将该用户分配给该角色。
ora-01926 不能用with grant option对角色授权 试图在授权给角色时使用 with grant option。不支持这种使用
ora-01927 不能revoke没有授予的权限 试图收回某个用户的权限,但没有将该权限授予这个用户。以授予该权限的用户或者SYSDBA用户的身份连入数据库。
ora-01928 grant选项没有对所有的权限授权 试图授予某个权限,但没有将该权限授予这个用户。以授予该权限的用户或者SYSDBA用户的身份进入数据库。
ora-01929 没有权限供授予 试图授予的权限的不能授予角色。必须直接授予用户。
ora-01933 不能用来自角色的权限闯进存储对象 试图基于授予来自角色的权限创建一个存储对象,不支持这种应用,让管理的授予存储对象需要访问的对象直接权限,并重新变异该对象。
ora-01934 监测到环形的角色授予 不能进行环形的角色授权,角色不能授权给自身。确定环形引用是在哪里产生的,并改正。
ora-01935 遗漏用户或角色名 发出的语句需要使用用户或者角色名,但是两个名字都没有找到。改正语句,然后重新执行。
ora-1035 只有拥有 restricted session 权限的用户的才可以使用oracle 数据库以受限模型打开时,试图登录进入没有 restricted session权限的账户。将数据库移出受限会话模式,或授予用户retricted session权限的账户,将数据库移出受限会话模式,或授予用户restricted session 权限。
ora-1039 视图下对象的权限不够 试图对某个试图执行计划解析,但没有对该视图下的对象执行该操作所需要的权限。需要直接访问视图下的对象,以执行对该视图的计划解析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ORA-01031权限不足错误是由于当前用户缺少执行特定操作的权限导致的。解决这个问题方法如下: 1. 检查当前用户权限:使用管理员账户登录到Oracle数据库,并确认当前用户是否具有执行需要的操作的权限。可以使用以下命令来检查用户权限: ``` SELECT * FROM USER_SYS_PRIVS; SELECT * FROM USER_ROLE_PRIVS; SELECT * FROM USER_TAB_PRIVS; ``` 确保当前用户具有执行所需操作的必要权限。 2. 授予缺少的权限:如果当前用户缺少执行特定操作的权限,可以使用GRANT语句来授予相应的权限。例如,如果用户缺少创建表的权限,可以使用以下命令来授予该权限: ``` GRANT CREATE TABLE TO 用户名; ``` 根据具体情况授予相应的权限。 3. 使用角色:您还可以将用户添加到具有所需权限的角色中。这样,用户将继承角色的权限。例如,如果角色"DBA"具有所需的权限,可以使用以下命令将用户添加到该角色中: ``` ALTER USER 用户名 DEFAULT ROLE ALL; ``` 注意:使用角色时需要谨慎,确保只赋予必要的权限,并避免给予过多的权限。 4. 重新连接数据库:在更改用户权限或添加到角色后,您需要断开当前会话并重新连接数据库,以使更改生效。 通过以上方法,您应该能够解决ORA-01031权限不足错误。如果问题仍然存在,请检查其他可能的权限限制或联系数据库管理员进行进一步的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Troc_wangpeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值