Oracle 11g 中如何授权一张表某个字段的select权限给另外一个用户
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 11g 中如何授权一张表某个字段的select权限给另外一个用户相关的知识,希望对你有一定的参考价值。
grant select on emp to user1;
这样将scott自己的emp表的查询权限授权给user1这个用户是可以的,但如果这样授权就有问题:
grant select on emp(empno) to user1; // 将查询权限限定在emp表的empno这个字段上,就是只能让用户user1查询emp表中的empno这个字段,别的不能查询。。。
上边这样做出现:ORA-00905: 缺失关键字 的错误。。。
除了使用试图外,有没有直接限定的方式???
1、在PLSQL里,用sys(oracle系统用户)登陆,登陆的时候要选择SYSDBA。
2、在左边的菜单里找到Users节点,右击选择添加功能。在打开的界面里写上用户名、密码,临时表空间一般选择temp。
3、对象权限无需添加,角色权限选择connect和resource即可。
4、系统权限选择create any procedure、create any view、debug connect session、unlimited tablespace。
5、最后点击应用保存即可。
参考技术A无法授权单个字段给某用户,可以使用创建这个表的单个字段的视图,将视图授权给用户。
如,emp表如下:
现要将empno字段赋权给system用户,首先要创建一个视图。
然后将视图授权给system用户,语句如下:
grant select on v_emp to system; 参考技术B grant select on admin.tb_name to user ;这句话的意思:你的user用户是创建好的,登录进去把 admin用户的tb_name表的查询权限授给user用户。跟新、删除权限用逗号分开即可。
例:grant select,update,insert ,dellete on scott.emp to user;追问
晕死,看清楚我问的问题好不好。。。。
追答呵呵,哈哈,嘿嘿 这样子滴啊,楼上不是说了么建个视图把要查询的字段放里面,把视图权限给那个用户就ok咯
追问这种方法是可行,有没有更好的方法,直接限定到一张表的某个字段,而不借助别的方法、、
追答等待高手中。。。
参考技术C 在数据库首页的设置中进行权限设置或者语句设置
如GRANT INSERT(ID) ON tmp TO mnt;
GRANT UPDATE(ID) ON tmp TO mnt;追问
grant select on emp to user1;
这样将scott自己的emp表的查询权限授权给user1这个用户是可以的,但如果这样授权就有问题:
grant select on emp(empno) to user1; // 将查询权限限定在emp表的empno这个字段上,就是只能让用户user1查询emp表中的empno这个字段,别的不能查询。。。
上边这样做出现:ORA-00905: 缺失关键字 的错误。。。
除了使用试图外,有没有直接限定的方式???
在命令模式下
sqlplus sys/oracle as sysdba;
SQL>grant select any dictionary to hr(或者其他普通用户);
create user admin identified by password;
grant connect, resource, dba to admin追问
老大,看清楚我问的问题。。。
sql如何查询出一张表的的某个字段数据更换成另一张表的字段数据
新手求指导! 用游标查出sal数据再根据job数据内容对应更换或赋值另一张sal表数据。
参考技术A UPDATE 表1SET sal=表2.sal
FROM 表2
WHERE 表1.job=表2.job追问
mysql 怎么写
本回答被提问者和网友采纳以上是关于Oracle 11g 中如何授权一张表某个字段的select权限给另外一个用户的主要内容,如果未能解决你的问题,请参考以下文章
在oracle中如何查询一张表的所有数据结构,包括字段,视图,索引,约束
sql如何查询出一张表的的某个字段数据更换成另一张表的字段数据