如何匯出SQL Server中的使用者賬號,許可權等資訊 - sp_help_revlogin
CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
DECLARE @name sysname
DECLARE @xstatus int
DECLARE @binpwd varbinary (256)
DECLARE @txtpwd sysname
DECLARE @tmpstr varchar (256)
DECLARE @SID_varbinary varbinary(85)
DECLARE @SID_string varchar(256)
IF (@login_name IS NULL)
DECLARE login_curs CURSOR FOR
SELECT sid, name, xstatus, password FROM master..sysxlogins
WHERE srvid IS NULL AND name <> 'sa'
ELSE
DECLARE login_curs CURSOR FOR
SELECT sid, name, xstatus, password FROM master..sysxlogins
WHERE srvid IS NULL AND name = @login_name
OPEN login_curs
FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
IF (@@fetch_status = -1)
BEGIN
PRINT 'No login(s) found.'
CLOSE login_curs
DEALLOCATE login_curs
RETURN -1
END
SET @tmpstr = '/* sp_help_revlogin script. '
PRINT @tmpstr
SET @tmpstr = '** Generated '
+ CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'
PRINT @tmpstr
PRINT ''
PRINT 'DECLARE @pwd sysname'
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
PRINT ''
SET @tmpstr = '-- Login: ' + @name
PRINT @tmpstr
IF (@xstatus & 4) = 4
BEGIN -- NT authenticated account/group
IF (@xstatus & 1) = 1
BEGIN -- NT login is denied access
SET @tmpstr = 'EXEC master..sp_denylogin ''' + @name + ''''
PRINT @tmpstr
END
ELSE BEGIN -- NT login has access
SET @tmpstr = 'EXEC master..sp_grantlogin ''' + @name + ''''
PRINT @tmpstr
END
END
ELSE BEGIN -- SQL Server authentication
IF (@binpwd IS NOT NULL)
BEGIN -- Non-null password
EXEC sp_hexadecimal @binpwd, @txtpwd OUT
IF (@xstatus & 2048) = 2048
SET @tmpstr = 'SET @pwd = CONVERT (varchar(256), ' + @txtpwd + ')'
ELSE
SET @tmpstr = 'SET @pwd = CONVERT (varbinary(256), ' + @txtpwd + ')'
PRINT @tmpstr
EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
+ ''', @pwd, @sid = ' + @SID_string + ', @encryptopt = '
END
ELSE BEGIN
-- Null password
EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
+ ''', NULL, @sid = ' + @SID_string + ', @encryptopt = '
END
IF (@xstatus & 2048) = 2048
-- login upgraded from 6.5
SET @tmpstr = @tmpstr + '''skip_encryption_old'''
ELSE
SET @tmpstr = @tmpstr + '''skip_encryption'''
PRINT @tmpstr
END
END
FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
END
CLOSE login_curs
DEALLOCATE login_curs
RETURN 0
GO
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-612008/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql server點檢賬號需要的許可權SQLServer
- SQL Server如何匯出db所有使用者許可權建立語句SQLServer
- 賬號和許可權管理
- SQL Server 許可權管理SQLServer
- Linux賬號安全——使用者登陸許可權Linux
- MySQL中如何得到許可權資訊MySql
- sql server的許可權查詢SQLServer
- SQL Server許可權問題SQLServer
- SQL Server中查詢使用者的物件許可權和角色的方法SQLServer物件
- MSSQL 如何匯出db所有使用者許可權建立語句SQL
- 關於SQL Server資料庫中的使用者許可權和角色管理SQLServer資料庫
- mysql匯出使用者許可權MySql
- MySQL 日常運維業務賬號許可權的控制MySql運維
- mysql建立只讀賬號和增刪改查許可權賬號MySql
- PostgreSQL物件許可權如何在後設資料中獲取-許可權解讀、定製化匯出許可權SQL物件
- win10賬號沒有管理員許可權如何解決_win10賬號沒有管理員許可權解決步驟Win10
- SQL Server SA許可權最新入侵方法SQLServer
- 如何看待抖音被降許可權流,該怎麼挽回賬號權重丨國仁網路資訊
- Linux賬號許可權分離的必要性Linux
- [譯]SQL Server分析服務的許可權配置SQLServer
- SQL Server 2000 許可權問題SQLServer
- SQL Server中sysobjects含義及批量賦予許可權的方法SQLServerObject
- Linux賬號和許可權管理(理論配寫)Linux
- SQL Server2000 許可權問題SQLServer
- SQL Server資料庫SA許可權總結SQLServer資料庫
- 在Linux中,如何新增和管理使用者賬戶以及如何設定sudo許可權?Linux
- Linux下通過受限bash建立指定許可權的賬號Linux
- 使用者許可權繼承另一使用者的許可權繼承
- 連線使用者獲取許可權資訊
- sql許可權管理SQL
- MySql給賬戶所有許可權MySql
- Oracle 使用者、物件許可權、系統許可權Oracle物件
- SQL Server中的版本號如何理解SQLServer
- 使用SQL批量查詢出建立使用者及許可權指令碼SQL指令碼
- 如何檢視postgresql使用者許可權SQL
- Sql Server關於許可權、角色以及登入名、使用者名稱的總結SQLServer
- 【許可權管理】Oracle中檢視、回收使用者許可權Oracle
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由