我遇到过一些问题,用户错误地创建了公共同义词,导致人们认为某些对象在一个架构中,而实际上它们在另一个架构中。每个人都知道他们应该使用私有同义词,但偶尔他们会忘记或犯错,然后有人会受到伤害。是否可以授予用户创建私有同义词的权限,但禁止使用公共同义词?
答案1
为了创建公共同义词,您必须拥有创建公共同义词权限。要在您自己的架构中创建同义词,您必须具有 CREATE SYNONYM 权限。因此,要执行您想要的操作,请使用:
GRANT CREATE SYNONYM TO the_user;
如果用户具有 CREATE PUBLIC SYNONYM 权限,则可以撤销它:
REVOKE CREATE PUBLIC SYNONYM FROM the_user;