SQL Server将用户映射到登录名并以编程方式添加角色

时间:2010-03-17 21:06:22

标签: mysql sql-server-2005 stored-procedures

在我的SQL Server 2005服务器中,我使用Management Studio创建数据库和登录。我的应用程序要求我为新创建的用户提供对另一个数据库的读写权限。

为此,我右键单击新创建的登录,选择属性并转到用户映射。我在数据库旁边放了一个检查,将此登录映射到db,并选择db_datareader和db_datawriter作为要映射的角色。

可以通过编程方式完成吗?我已经阅读了有关使用Alter User和sp_change_users_login的信息,但是我遇到了问题,因为sp_change_users_login已被弃用,所以我更喜欢使用Alter User。

请注意我对SQL Server数据库用户/登录/角色的理解是基本的

1 个答案:

答案 0 :(得分:1)

登录用于服务器实例。用户处于数据库级别。角色通常在数据库级别找到,但在服务器实例级别有一些固定角色,如sysadmin。

转到here获取语法以在数据库上创建用户 请转到here以获取将该用户添加到数据库角色的语法。

您可能会执行以下操作来完成所有这些操作。

Create Login temp1 with Password = '123!@#$FAF', Default_Database = test
GO
use test;
Create User user_blah1 from Login  temp1
GO
use test;
Exec sp_addrolemember  @rolename =  'db_datareader',
     @membername =  'user_blah1'