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

标签 mysql sql-server-2005 stored-procedures

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

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

这可以通过编程方式完成吗?我读过有关使用 Alter User 和 sp_change_users_login 的信息,但我在使用它们时遇到了问题,因为 sp_change_users_login 已被弃用,所以我更愿意使用 Alter User。

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

最佳答案

登录用于服务器实例。用户处于数据库级别。角色通常位于数据库级别,但也有一些固定角色,例如服务器实例级别的 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'

关于mysql - SQL Server 将用户映射到登录并以编程方式添加角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2465915/

相关文章:

sql-server - 通信链路故障错误信息

SQL : in clause in stored procedure:how to pass values

sql-server - 找不到用户 '' ,因为它不存在或您没有权限

mysql - 更新表中的 FromDate 和 ToDate 列

php - 模型文件 codeigniter 中的多个查询

php - 使用 move_uploaded_file 上传文件错误

mysql - innodb 聚集二级索引和范围查询的问题

SQL Server 相当于 Oracle 的 NULLS FIRST?

sql - SQL Server 中区分大小写的变量名称?

php - 如何检查提交了哪个按钮