【发布时间】:2013-10-05 09:15:15
【问题描述】:
我有一个场景,我需要允许一个数据库中的用户访问 SAME SQL 服务器上另一个数据库中的对象。
SQL 服务器设置:
我有一个 SQL Server 2008 Express 实例正在运行。
在该实例中,我有以下内容:
2 个数据库:
数据库1
数据库2
2 次登录:
管理员1
管理员2
DATABASE1 有一个在 ADMIN1 上创建的用户 (USER1),并且对 DATABASE1 中的存储过程具有 SELECT、UPDATE、DELETE、INSERT 和 GRANT EXECUTE 权限
DATABASE2 有一个在 ADMIN2 上创建的用户 (USER2),并且对 DATABASE2 中的存储过程具有 SELECT、UPDATE、DELETE、INSERT 和 GRANT EXECUTE 权限
问题:
我需要的是允许 'USER1' SELECT/EXECUTE 对 DATABASE2 中的表和存储过程的权限
我在一些帖子中尝试了一些 SQL 的 sn-ps,但我不知道如何编写 SQL。 我还尝试通过右键单击 Management Studio 中的用户和登录名来手动勾选权限复选框,但是 我需要在我的脚本中执行 SQL。
我的问题的原因
我在 DATABASE1 和 DATABASE2 中有相关的表,但显然我们不能在不同的数据库中创建外键约束。
我们认为处理这两个表之间关系的最好方法是在 DATABASE1 中创建一个存储过程来查询
DATABASE2中的相关表并返回结果。
抱歉,我无法发布任何示例,因为我无法通过搜索找到与我上面描述的场景相匹配的任何示例。 如果我可以提供任何进一步的信息,请告诉我。
非常感谢 凯夫
【问题讨论】:
-
只是另一个想法.......我在“跨数据库”时看到的。思路 1. 在 Database1 中创建一个引用 Database2 的视图。我会把它放在一个新定义的模式名称下。所以...查询数据库 1(查看 db 2 中的数据),您将拥有“从 OtherDatabasesSchema.vwCounty 中选择 A、B、C ...... Idea2,在 db1 中的代码中使用同义词,并且同义词可以指向数据库 2 中的对象。
标签: sql sql-server sql-server-2008