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 视图下对象的权限不够 试图对某个试图执行计划解析,但没有对该视图下的对象执行该操作所需要的权限。需要直接访问视图下的对象,以执行对该视图的计划解析。

你可能感兴趣的:(oracle,数据库,java)