SQL Server 2005 - 创建具有另一个数据库权限的数据库

Posted

技术标签:

【中文标题】SQL Server 2005 - 创建具有另一个数据库权限的数据库【英文标题】:SQL Server 2005 - Create Database with permissions for another database 【发布时间】:2011-04-22 15:47:40 【问题描述】:

我是一个完整的 SQL Server 新手,但我有使用 Oracle 和 mysql 的经验。我正在使用 SQL Server Management Studio。

我有一个现有的数据库,我想从中创建视图,但我希望这些视图驻留在另一个数据库(架构?)中,该数据库可由可以通过 JDBC 连接的单独用户帐户访问。

我可以很容易地创建数据库,右键单击“数据库”并选择“新建数据库”。从那里我迷路了。

1) 如何将一个数据库的选择/更新/删除权限(创建和更新视图)授予新数据库?

2) 如何创建新用户?

3) 如何为用户授予权限?

提前致谢。

【问题讨论】:

我认为你需要一个新的架构而不是一个新的数据库。您可能会发现这很有用msdn.microsoft.com/en-us/library/ms188676.aspx 【参考方案1】:

就像 Martin 说的,你需要一个新的架构而不是数据库。

CREATE SCHEMA [SchemaName] AUTHORIZATION dbo;

然后在新的架构名称下创建您的视图,

CREATE LOGIN [LoginName] FROM WINDOWS(如果您使用的是 AD 组)

使用[数据库名称];

创建用户 [登录名/用户名]; (可以相同)

GRANT EXECUTE、SELECT、INSERT、DELETE、VIEW DEFINITION ON Schema::[NewSchemaName] TO [LoginName/Username];

如果您想拥有一个角色,请在数据库下创建角色,并使用户名成为该角色的成员并授予该角色的权限。

【讨论】:

以上是关于SQL Server 2005 - 创建具有另一个数据库权限的数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server 2005 中将列标识上的标识设置为另一个表的列

SQL Server 2005 - 用户权限

如何从 SQL Server 2005 中另一个表中的相应数据更新一个表中的数据

在 SQL Server 2005 中为数据库角色成员生成脚本

Sql Server 备份到 UNC

如何使用单引号 sql server 2005 插入文本