目的:想新建一个登录名,我的应用程序都通过这个登录名来登录Exec sp_addlogin
@loginame='aaa',
@passwd='bbb'exec sp_addsrvrolemember
@loginame='aaa',
@rolename='sysadmin'
----------------------
问题:
按上面方法建了个登录名aaa并且将它归于sysadmin之后,在应用程序用此登录名连接SQL时报错,提示权限不足。在SQL-安全性-登录名中直接查看此登录名属性,报错,见下图:
经查,发现凡用sp_addlogin方式添加的登录名,都会被“强制实施密码策略”和“状态-禁止登录”,见下图:但用手工直接添加的登录名则无此问题,你可以在添加登录名时去掉“强制实施密码策略”的勾。求救:
==============================================================
1、用sp_addlogin方式来添加登录名,如何避免强制实施密码策略”,以及如何将状态默认为“允许登录”?
2、之前都是用sp_addlogin来操作的,一样的代码,一样的做法,都不曾发生过问题。为什么现在会出现这样的问题?是不是我在无意当中修改了某个SQL的选项?
@loginame='aaa',
@passwd='bbb'exec sp_addsrvrolemember
@loginame='aaa',
@rolename='sysadmin'
----------------------
问题:
按上面方法建了个登录名aaa并且将它归于sysadmin之后,在应用程序用此登录名连接SQL时报错,提示权限不足。在SQL-安全性-登录名中直接查看此登录名属性,报错,见下图:
经查,发现凡用sp_addlogin方式添加的登录名,都会被“强制实施密码策略”和“状态-禁止登录”,见下图:但用手工直接添加的登录名则无此问题,你可以在添加登录名时去掉“强制实施密码策略”的勾。求救:
==============================================================
1、用sp_addlogin方式来添加登录名,如何避免强制实施密码策略”,以及如何将状态默认为“允许登录”?
2、之前都是用sp_addlogin来操作的,一样的代码,一样的做法,都不曾发生过问题。为什么现在会出现这样的问题?是不是我在无意当中修改了某个SQL的选项?
CREATE LOGIN
具体看帮助
GO
CREATE LOGIN [Roy] WITH PASSWORD=N'1', DEFAULT_DATABASE=[Test], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [Test]
GO
CREATE USER [Roy] FOR LOGIN [Roy]
GO
USE [Test]
GO
EXEC sp_addrolemember N'db_owner', N'Roy'
GO
把那个强制去掉。
你只有登录还是不够的,要访问数据库的话,要和数据库用户关联上的。
改為
USE [master]
GO
CREATE LOGIN [aaa] WITH PASSWORD=N'1', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
EXEC master..sp_addsrvrolemember @loginame = N'aaa', @rolename = N'sysadmin'
GO
是SQL2005,邹老大的SQL2008没有问题,SQL2005中呢?
sp_addlogin --不指定CHECK_EXPIRATION設置,操作系統非(Windows Server 2003 和更新版本)時,可以執行CHECK_EXPIRATION 和 CHECK_POLICY 只在 Windows Server 2003 和更新版本上強制執行。CHECK_EXPIRATION--這選項與操作系統有關系。鄒老大的系統應該不是Windows Server 2003 和更新版本?