【发布时间】:2014-11-06 13:02:44
【问题描述】:
我正在使用 MSSQL 2014,但在满足数据库管理员关于安全性的一项请求时遇到了麻烦。 我们的解决方案包含多个数据库(在同一台服务器上),其中包含两个或多个数据库的表之间的连接的存储过程。我们有一个用户对所有数据库拥有相同的权限。 非常简单的例子:一个数据库包含文章,而另一个包含价格,查询需要获取文章及其价格。查询在这两个数据库中的表之间具有 INNER JOIN-s。
在我们客户的测试环境中部署解决方案后,我与客户的数据库管理员交谈,他要求我修改数据库和用户以符合他们的一些标准。这些标准包括不同环境中的不同数据库名称以及每个数据库一个单独的用户。
如果我在当前解决方案中确实更改了数据库名称和用户,存储过程将由于无效的数据库名称或无效的凭据而返回错误。我问那个管理员他们是如何在他们的环境中解决这样的问题的,他的回答是他们创建了数据库链接。在谷歌搜索解决方案后,我发现 Oracle 有 CREATE DATABASE LINK 选项,但在 MSSQL 中没有类似的东西(除了链接服务器功能,但这并不能解决我的问题)。
我正在寻找的是类似于 Oracle 在 MSSQL 2014 中的 CREATE DATABASE LINK 的解决方案,它允许执行存储过程而无需更改查询,而是创建需要的数据库的“别名”改名了。
有人知道我该怎么做吗?
【问题讨论】:
-
是客户,但数据库名称如何构成安全问题?
-
您在寻找this吗?
-
@TabAlleman 我会更详细地检查同义词,但我似乎无法为连接指定凭据。
-
@ForguesR 数据库在同一台服务器上,链接服务器无法完成这项工作......
-
@Blam 数据库名称不是安全问题,而是一个标准 - 他们有很多环境,数据库命名对他们来说很重要。
标签: sql-server database oracle