0

我有一个场景,我需要允许一个数据库中的用户访问 SAME SQL 服务器上另一个数据库中的对象。

SQL SERVER SETUP:
我有一个 SQL Server 2008 Express 实例正在运行。

在那个实例中,我有以下内容:

2个数据库:
DATABASE1
DATABASE2

2 次登录:
ADMIN1
ADMIN2

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 片段,但我不知道如何编写 SQL。我还尝试通过在 Management Studio 中右键单击用户和登录名来勾选权限复选框,但我需要在我的脚本中执行 SQL。

我的问题的原因
我在 DATABASE1 和 DATABASE2 中有相关的表,但显然我们不能在不同的数据库中创建外键约束。我们认为处理这两个表之间关系的最好方法是在 DATABASE1 中创建一个存储过程来查询 DATABASE2 中的相关表并返回结果。

很抱歉无法发布任何示例,因为我无法通过搜索找到与我上面描述的场景相匹配的任何示例。如果我可以提供任何进一步的信息,请告诉我。

非常感谢凯夫

4

1 回答 1

0

只要您的用户是在实例级别定义的,您就可以授予他们在每个数据库中所需的任何权限。在主服务器下创建您的用户,然后将他们添加为每个数据库的用户,授予他们每个特定数据库所需的任何权限。

编辑更详细(基于评论):

首先,您需要创建一个数据库登录。这是一个登录名,然后可以作为用户添加到您实例上的一个或多个数据库中。

详细信息(包括 SQL 语法): http ://technet.microsoft.com/en-us/library/ms189751.aspx

其次,您需要在数据库(Database1、Database2 等)中配置用户。您将希望将这些用户以相同的方式添加到安装的每个产品数据库中。只要用户在那里,您就可以在您的实例上的各种数据库中进行查询。

详细信息(包括 SQL): http ://technet.microsoft.com/en-us/library/aa337545.aspx

祝你好运!

于 2013-10-04T15:44:29.683 回答