在同一个DB下,用户A创建了一个Table(student),用户B无法访问。如果B想要访问,就需要A赋予B权限。

Oracle给权限和同义词-LMLPHP

  登录用户A执行下面语句:

GRANT SELECT, INSERT, UPDATE, DELETE on A.student to B;

  在Student表前面加上A.(schema)的目的之一是为了安全,如果此时是用户A登录,这个语句就不会出错,如果此时不是用户A登录,执行该语句就会出错,这样就保证了正确性和安全性。

  此时登录用户B就能对student这个表进行操作,但是执行语句要在table名前加上Schema。

如:

select * from B.student;

  这样就会比较麻烦,所以我们要建立同义词。同义词的作用可以理解为B.student和student是一样的。

登录用户B,执行下面语句:

CREATE SYNONYM B.student FOR A.student;

  前面不加B.也是可以的,效果一样

CREATE SYNONYM student FOR A.student;

  加schema的目的是为了看起来更明朗。

  建完同义词,这是用户B就可以更方便的操作student这个table了,不用再加上schema的前缀

select * from student;
05-11 19:43