如何在sql server 2005中创建一个具有密码的新数据库用户?
我需要在连接字符串中使用此用户/密码,例如:
uid=*user*;pwd=*password*;
答案 0 :(得分:16)
CREATE LOGIN [user] WITH PASSWORD='password',
DEFAULT_DATABASE=[your_db], CHECK_POLICY=OFF
GO
CREATE USER [user] FOR LOGIN [user]
EXEC sp_addrolemember N'db_datareader', N'your_db'
EXEC sp_addrolemember N'db_datawriter', N'your_db'
GO
CHECK_POLICY=OFF
关闭密码复杂性检查等
答案 1 :(得分:6)
从SQL Server 2005开始,您基本上应该分两步创建用户:
你会这样做:
CREATE LOGIN MyNewUser WITH PASSWORD = 'top$secret';
并“使用”您的数据库并为该登录创建用户:
USE AdventureWorks;
CREATE USER MyNewUser FOR LOGIN MyNewUser
答案 2 :(得分:2)
如上所述,使用CREATE LOGIN创建以该帐户身份连接到SQL Server的功能。然后在数据库中使用CREATE USER为该登录提供访问相关数据库的能力。
然而,基于其中一些评论的一些安全点:
答案 3 :(得分:1)
您必须先以用户身份创建它,然后为该用户设置正确的权限。
您必须确保您的数据库配置了用户身份验证和SQL身份验证 如果使用Management Studio:右键单击Server,选择“Security”,确保服务器身份验证为“SQL Server和Windows身份验证模式”
在Security-logins中,右键单击并选择“New Login”,选择SQL Authentication,使用您喜欢的用户名和密码。
USE [master]
GO
CREATE LOGIN [ test] WITH PASSWORD=N'test', DEFAULT_DATABASE=[MY_DATABASE], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
在您想要的数据库上,在安全性,用户中,选择新用户。选择用户名,并附上您刚刚创建的登录名,然后选择要应用于此用户的角色(例如db_datareader
,db_datawriter
):
USE [MY_DATABASE]
GO
CREATE USER [myDefaultUser] FOR LOGIN [ test]
GO
USE [MY_DATABASE]
GO
EXEC sp_addrolemember N'db_datareader', N'myDefaultUser'
GO
USE [MY_DATABASE]
GO
EXEC sp_addrolemember N'db_datawriter', N'myDefaultUser'
GO
就是这样。现在,您可以使用此密码创建连接字符串。
答案 4 :(得分:0)
CREATE LOGIN MyNewUser WITH PASSWORD = 'top$secret'
USE AdventureWorks
CREATE USER MyNewUser FOR LOGIN MyNewUser
GO
答案 5 :(得分:-1)
USE [MASTER]
EXEC master.dbo.sp_addlogin @loginame = N'USERNAME', @passwd = 'THEPASS' @defdb = N'master', @deflanguage = N'us_english'
USE [YOUR_DB]
EXEC dbo.sp_grantdbaccess @loginame = N'USERNAME', @name_in_db = N'USERNAME'