我刚刚在数据库中遇到了SYNONYM的概念。通过阅读:http://msdn.microsoft.com/en-us/library/ms187552.aspx 而这What is the use of SYNONYM in SQL Server 2008?我找出了同义词的目的。
但是,我仍然不了解为远程表创建同义词的实际过程中的一小步。我在网上搜索,但通常说明主要关注SQL语法(例如这一个:http://www.oninit.com/manual/informix/english/docs/dbdk/is40/sqls/02cr_prc8.html)。在创建远程表的同义词时,我发现没有任何指导提到身份验证部分。我想数据库不能让任何人创建一个同义词然后获得对其表的访问权限?所以我很好奇目标远程表的数据库如何知道访问其表的同义词引用是否合法?
答案 0 :(得分:1)
您的问题的答案将在很大程度上取决于您使用哪个数据库平台来包含同义词;在您的问题中,您引用了至少两个文档(SQL Server和Informix)。我对Informix了解不多,但我会假设它的安全模型与SQL Server不同。
对于SQL Server,必须先将远程服务器设置为链接服务器(假设您使用的是远程对象)。有关如何执行此操作的详细信息,请参阅http://technet.microsoft.com/en-us/library/ms188279.aspx。
答案 1 :(得分:1)
您无需基础对象的权限即可成功编译CREATE SYNONYM语句,因为对基础对象的所有权限检查都会延迟到运行时。
也就是说,同义词没有安全问题,因为权限检查在同义词使用时发生,权限检查基于真实对象,而不是同义词。