2个数据库中的SQL用户权限

时间:2013-10-04 15:41:13

标签: sql sql-server sql-server-2008

我有一个场景,我需要允许一个数据库中的用户访问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权限

问题:
我需要的是允许对DATABASE2中的表和存储过程的'USER1'SELECT / EXECUTE权限

我从几个帖子中尝试了一些SQL的片段,但我不知道如何编写SQL。 我还尝试通过右键单击用户并在Management Studio中登录来手动勾选权限复选框 我需要SQL在我的脚本中执行。

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

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

非常感谢 千电子伏

1 个答案:

答案 0 :(得分:0)

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

更多细节(根据评论)编辑:

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

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

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

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

祝你好运!

相关问题