日期:2014-05-17  浏览次数:20550 次

禁止window身份验证访问数据库
1、怎么样使用语句登录禁止windows身份验证登录数据库?

2、能不能只禁止Windows身份验证登录后不能访问指定的数据库,对其他数据库可以不禁止?

------解决方案--------------------
SQL code

安装过程中,SQL Server 数据库引擎设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式。本主题介绍如何在安装后更改安全模式。

如果在安装过程中选择“Windows 身份验证模式”,则 sa 登录名将被禁用。如果稍后将身份验证模式更改为“SQL Server 和 Windows 身份验证模式”,则 sa 登录名仍处于禁用状态。若要启用 sa 登录帐户,请使用 ALTER LOGIN 语句。

安全说明: 
sa 帐户是一个广为人知的 SQL Server 帐户,并且经常成为恶意用户的攻击目标。除非您的应用程序需要使用 sa 帐户,否则请不要启用它。为 sa 登录名使用一个强密码非常重要。 
 


sa 登录名只能使用 SQL Server 身份验证连接到服务器。

 更改安全身份验证模式
在 SQL Server Management Studio 的对象资源管理器中,右键单击服务器,再单击“属性”。

在“安全性”页上的“服务器身份验证”下,选择新的服务器身份验证模式,再单击“确定”。

在 SQL Server Management Studio 对话框中,单击“确定”以确认需要重新启动 SQL Server。

 从 SQL Server Management Studio 重新启动 SQL Server
在对象资源管理器中,右键单击您的服务器,再单击“重新启动”。如果运行有 SQL Server 代理,则也必须重新启动该代理。

 使用 Transact-SQL 启用 sa 登录帐户
执行下列语句以启用 sa 密码并分配一个密码。

ALTER LOGIN sa ENABLE ;
GO
ALTER LOGIN sa WITH PASSWORD = '<enterStrongPasswordHere>' ;
GO
 使用 Management Studio 启用 sa 登录帐户
在对象资源管理器中,依次展开“安全”、“登录名”,右键单击“sa”,再单击“属性”。

在“常规”页上,您可能需要为 sa 登录名创建密码并确认该密码。

在“状态”页上的“登录”部分中,单击“启用”,然后单击“确定”。

------解决方案--------------------
进入management studio,将windows身份认证对应的用户名(一般是计算机名/administrator)用户属性修改为禁止登陆就可以了。限制登陆某些数据库可以向普通用户一样限制访问权限。
------解决方案--------------------
SQL code
EXEC master..sp_dropsrvrolemember @loginame = N'NT AUTHORITY\SYSTEM', @rolename = N'sysadmin' GO

------解决方案--------------------
探讨
SQL code

安装过程中,SQL Server 数据库引擎设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式。本主题介绍如何在安装后更改安全模式。

如果在安装过程中选择“Windows 身份验证模式”,则 sa 登录名将被禁用。如果稍后将身份验证模式更改为“SQL Server 和 Windows 身份验证模式”,则 sa 登录名仍处于禁……

------解决方案--------------------
一、需要在两个地方设置
1、服务器属性-->安全性
把里面的服务器身份验证选为 SQL Server和Windows身份验证方式
2、安全性-->登录名 
在 BUILTIN\Administrators 的属性中的服务器角色,把权限都去掉(勾全去掉) --

注:设置完后最好重启下服务
如果本身可以由用 sa 登录,只需第2步即可 

问题二:不能,因为Windows身份验证登录的权限是system级的,禁用后所有都不能访问,要么都可以访问!
------解决方案--------------------
安全性--用户--属性--禁止登陆就可以了啊
------解决方案--------------------
探讨
禁用Windows登录的方式,我试过了,可以实现.但是将Windows账号登录禁止掉后,代理服务就启动不了了.所以这个方法,不能使用在实际中.

那能不能对Windows账号的权限进行设置呢?设置该账户在某个数据库中不能修改数据.

------解决方案--------------------
其实没必要禁用windows登录,从windows server层面可以禁用,而且SQLServer很多服务都是要用到windows的账号,禁用掉可能导致你的服务起不来。所以windows的权限还是交给操作系统来负责,你应该重点关注混合模式登录的问题,因为只是一个密码登录,几乎没什么安全性可言。另外,建议直接禁用sa(首先先创建一个和sa同等权限的账号用于替代)。建议把非管理级别的账号都控制在数据库级别而不是SQLServer级别。