This topic created in 4679 days ago, the information mentioned may be changed or developed.
我是这样做的:
CREATE ROLE RONLY;
GRANT CONNECT, SELECT ANY TABLE TO ROLE;
CREATE USER RO IDENTIFIED BY RO;
GRANT RONLY TO RO;
用sysdba登录 所有命令都执行成功。
用RO登录之后,随便查一个表都提示表或视图不存在。
SELECT * FROM USER_TABLES;
结果是空。
求教,问题在哪里?
6 replies • 1970-01-01 08:00:00 +08:00
 |
|
3
Alexisused Aug 15, 2013
@ yanyanlong 没有 SELECT * FROM 别的用户.表 可以查 但是 CREATE SYNONYM TT FOR 别的用户.表 提示权限不足
|
 |
|
4
yanyanlong Aug 15, 2013
@ Alexisused 1. 没有自己的表,USER_TABLES就是空的,试试ALL_TABLES。 2. 没有赋create SYNONYM 的权限
|
 |
|
6
Alexisused Aug 15, 2013 1
总结一下: /////////////////////////////////////////////////////// 创建用户并指定表空间 /////////////////////////////////////////////////////// CREATE USER RONLY IDENTIFIED BY RONLY;
/////////////////////////////////////////////////////// 分配权限 /////////////////////////////////////////////////////// GRANT CREATE SESSION, CREATE SYNONYM, CREATE VIEW, SELECT ON USERNAME.TABLENAME TO RONLY;
/////////////////////////////////////////////////////// 创建同义词(RONLY用户下) /////////////////////////////////////////////////////// CREATE OR REPLACE SYNONYM NEWNAME FOR USERNAME.TABLENAME;
/////////////////////////////////////////////////////// 测试(RONLY用户下) /////////////////////////////////////////////////////// SELECT * FROM NEWNAME;
|