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]