我们在信息化系统日常维护中,常常需要禁止客户端用户访问数据库,维护完了后又要恢复客户端访问,在SQL Server Management中使用: "alter login [oneClient] Disable" 或者 "alter login [oneClient] Enable" 就可以轻松搞定(需要sa 登录方可操作),但是登录名多而且维护频繁时,会觉得打开SQL Management和拼凑Alter语句很麻烦,这时可以编写了一个小程序,专门用来禁止客户端登录,一劳永逸。
另外,如何检索数据库中哪些登录名被禁用、哪些登录名未被禁用呢(虽然对已禁用的登录名再次使用"alter login ... Disable"并不会引发异常,但有时需要在界面上显示出当前被禁用的用户)?
其实这是可以用下面语句:
select sys.sql_logins.name from sys.sql_logins where sys.sql_logins.is_disabled=0 /*已禁止登录的用户名*/
select sys.sql_logins.name from sys.sql_logins where sys.sql_logins.is_disabled=1 /*可正常登录的用户名 */