SQL> remark 注:用户在使用同义词对象的时候,对同义词操作的权限等同于所依赖的对象的权限;即:使用同义词是,依赖的对象必须是授权过的;
SQL> remark ..............公有同义词.........................
SQL> remark 权限:create public synonym drop public synonym
SQL> remark 创建公有同义词的用户必须拥有上面的两个权限
SQL> remark 其他的用户操作同义词的时候要依赖同义词所关联的对象;
SQL> remark 给hope 用户授予创建公有同义词的权限
SQL> conn system/manager;
Connected.
SQL> grant create public synonym to hope;
Grant succeeded.
SQL> grant drop public synonym to hope;
Grant succeeded.
SQL> reamrk 登陆hope用户,并创建公有同义词
SP2-0734: unknown command beginning "reamrk 登..." - rest of line ignored.
SQL> edit
Wrote file afiedt.buf
1* grant drop public synonym to hope
SQL> remark 登陆hope用户,并创建公有同义词
SQL> conn hope/hope123;
Connected.
SQL> create public synonym pubemp for scott.emp;
Synonym created.
SQL> remark 另外创建一个用户,并使用这个公有同义词
SQL> conn system/manager;
Connected.
SQL>
1 create user hope1
2* identified by hope1123
3 /
User created.
SQL> remark 给新建的用户授予系统权限
SQL> grant connect to hope1;
Grant succeeded.
SQL> grant resource to hope1;
Grant succeeded.
SQL> remark 连接hope1用户使用公有同义词
SQL> conn hope1/hope1123;
Connected.
SQL> remark 由于scott并没有授权给hope1这个用户相关对象的权限,所有hope1并不能使用该公有同义词
SQL> remark 给hope1进行授权
SQL> conn scott/tiger;
Connected.
SQL> grant all on emp to hope1;
Grant succeeded.
SQL> conn hope1/hope1123;
Connected.
SQL> select empno,ename,sal from pubemp;
SQL> remark 连接hope用户进行使用公有同义词
SQL> conn hope/hope123;
Connected.
SQL> select empno,ename from pubemp;
SQL> remark ..................................................................
SQL> remark ..................................................................
SQL> remark 创建公有同义词
SQL> create public synonym pubemp for scott.emp;
create public synonym pubemp for scott.emp
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
SQL> remark ..................................................................
SQL> remark 删除同义词
SQL> drop synonym myemp;
Synonym dropped.
SQL> drop synonym pubemp;
drop synonym pubemp
*
ERROR at line 1:
ORA-01434: private synonym to be dropped does not exist