数据库技术:在Oracle中创建用户并且赋予特定权限怎么解决?由Markdown语法编辑器编辑完成。
1. 需求提出
在HIS与第三方系统进行集成时,某第三方系统需要访问HIS数据库的视图而非全部的数据库表。
HIS的数据库为Oracle, 因此需要在Oracle中在原有用户的基础上,再增加一个用户,该用户仅能查看HIS中为其开放的视图。这也是为了系统之间的安全考虑的。
2. 解决方案
经过技术查阅,找到的解决方案如下:
(1)以system用户登录oracle数据库.
(2)创建用户并且为用户赋予查看视图的权限.
这里假设要创建一个tester用户,登录密码为:“123456”.
HIS需要开放的视图是在原来用户 outpatient下的,视图名称为:v_daily_charge.
此时,应该撰写的SQL为:
--01: 创建tester用户,并且初始密码为123456. create user tester identified by "123456"; --02: 赋予该用户登录数据库的权限. grant create session to tester; --03: 赋予该用户查看outpatient下的视图v_daily_charge的权限. grant select on outpatient.v_daily_charge to tester;
注意:在运行以上第三条SQL的时候,oracle数据库有可能会报错。
ORA-01725.
经过研究,出错的原因应该是,tester用户要访问outpatient用户的视图,该视图中会查阅outpatient用户下的某些表,如t_user, t_dept表,也可能访问其他用户的表,如emergency用户下的t_cost表。
为了避免以上的错误,就需要在为tester用户赋予查看outpatient的视图权限前,先将这个视图中需要访问的其他用户的表的权限开放给tester用户才可以。
因此,在第三句SQL前还需要补充几句:
需要了解更多数据库技术:在Oracle中创建用户并且赋予特定权限怎么解决?,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!
--为tester用户赋予查看outpatient用户下的t_user和t_dept表和emergency用户下的t_cost表的权限. grant select on outpatient.t_user to tester; grant select on outpatient.t_dept to tester; grant select on emergency.t_cost to tester;
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/dtteaching/801805.html