本人C# 连接Oracle做开发。一开始的用户名密码是UserA/PWDA
现在和新建了一个用户UserB/PWDB,可它找不到UserA有权限的表。我把UserA的Select权限授给UserB之后,有如下问题。Conn UserB/PwdB之后Select * from UserA.users 可以。
但是 Select * from users 就找不到表或视图了。请教,我如何把UserA有权限的表的SELECT、Update、Delete权限全都授给UserB呢?使Conn UserB/pwdb之后,
使 Select * from users 可用。谢谢!
现在和新建了一个用户UserB/PWDB,可它找不到UserA有权限的表。我把UserA的Select权限授给UserB之后,有如下问题。Conn UserB/PwdB之后Select * from UserA.users 可以。
但是 Select * from users 就找不到表或视图了。请教,我如何把UserA有权限的表的SELECT、Update、Delete权限全都授给UserB呢?使Conn UserB/pwdb之后,
使 Select * from users 可用。谢谢!
要么加usera.访问
要么建同义词
create synonym users for usera.users;
create synonym tablename1 for usera.tablename1;
create synonym tablename2 for usera.tablename2;
...
那我要是有50张表,是不要写50个 create synonym 表名 for Usera.表名 ?
在A用户下执行select 'create synonym ' || table_name || ' for usera.' || table_name || ';'
from user_tables如下:用usera用户登录
SQL> select 'create synonym ' || table_name || ' for usera.' || table_name || ';'
2 from user_tables
3 ;
'CREATESYNONYM'||TABLE_NAME||'
--------------------------------------------------------------------------------
create synonym TB for usera.TB;
create synonym USERT for usera.USERT;
create synonym S for usera.S;
create synonym EMP for usera.EMP;
create synonym SC for usera.SC;
create synonym C for usera.C;
create synonym NEWT for usera.NEWT;
create synonym A for usera.A;
create synonym B for usera.B;
create synonym T for usera.T;
create synonym TABLE1 for usera.TABLE1;
create synonym AAA for usera.AAA;
create synonym TEST for usera.TEST;
create synonym SYS_TEMP_FBT for usera.SYS_TEMP_FBT;
把结果拷贝出来再 在userb下执行所有的脚本
CREATE SYNONYM users FOR UserA.users;
grant SELECT、Update、Delete on users to UserB
谢谢!我用 Sys/sa as sysdba 帐户 给UserB授创建同义词权限之后(Grant create public synonym to Userb),然后用Conn Userb/PwdB,还是没有权限创建同义词。怎么回事。
grant create synonym to userb
要么你以dba权限创建公共同义词
create public synonym users for usera.users;
..