reko_3 发表于 2016-11-17 08:29:34

db2中一个帐号如何将另一个帐号的对象当做自己的对象来访问

  db2中,我们创建了一个帐号A,这个时候客户不希望然应用程序直接用A帐号来访问数据库对象,因为A是超级用户,想用权限低一点的账户B来访问,如果按照常理来的话,我们改用B账户来访问的话程序中的查询语句需要写成:

select * from A.table_a;
  如果写成:

select * from table_a;
  执行将报错,说B帐号不存在 table_a对象,怎么办呢?
  我们知道数据库中有
  1,授权的功能,可以将我自己的对象授权给别的帐号使用和管理;
  2,命名别名的功能;
  好,我们就可以开始工作了
  1,A登录数据库,将 table_a 表授权给 B账户

GRANTCONTROL ON TABLE A.table_a TO USER B;
GRANTSELECT,INSERT,UPDATE,DELETE,ALTER,INDEX,REFERENCES ON TABLE A.table_a
TO USER B WITH GRANT OPTION;

  2, B登录数据库给对象命名别名

CREATE ALIAS B.table_a FOR A.table_a;
  3,测试

select * from A.table_a;
select * from B.table_a;
select * from table_a;
  备注:

oracle中(同义词)别名相关操作:
DROP SYNONYM emp; --删除名为emp 的私有同义词
DROP PUBLIC SYNONYM public_emp; --删除名为public_emp的公有同义词
 
页: [1]
查看完整版本: db2中一个帐号如何将另一个帐号的对象当做自己的对象来访问