自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Sql Server 2005中導出登錄用戶信息腳本

數(shù)據(jù)庫 SQL Server
本文主要介紹了通過在查詢分析器中執(zhí)行代碼的方式將登錄用戶信息腳本從一臺機器的sql server導出到另一臺機器的sql server的過程,接下來就讓我們來一起學習吧。

在做數(shù)據(jù)遷移時,如果需要把一個Sql Server上的用戶在另外一個Sql Server上重新生成時,就可以用以下這個方法輕松解決:

首先在查詢分析器中執(zhí)行以下的代碼:

  1. USE [master]  
  2.  
  3. GO  
  4.  
  5. /****** Object:  StoredProcedure [dbo].[sp_help_revlogin]  
  6.  
  7. Script Date: 07/13/2011 19:07:32 ******/  
  8.  
  9. SET ANSI_NULLS ON  
  10.  
  11. GO  
  12.  
  13. SET QUOTED_IDENTIFIER ON  
  14.  
  15. GO 

 創(chuàng)建存儲過程:

  1. CREATE PROCEDURE [dbo].[sp_help_revlogin] @login_name sysname = NULL AS  
  2.  
  3. DECLARE @name sysname  
  4.  
  5. DECLARE @type varchar (1)  
  6.  
  7. DECLARE @hasaccess int  
  8.  
  9. DECLARE @denylogin int  
  10.  
  11. DECLARE @is_disabled int  
  12.  
  13. DECLARE @PWD_varbinary  varbinary (256)  
  14.  
  15. DECLARE @PWD_string  varchar (514)  
  16.  
  17. DECLARE @SID_varbinary varbinary (85)  
  18.  
  19. DECLARE @SID_string varchar (514)  
  20.  
  21. DECLARE @tmpstr  varchar (1024)  
  22.  
  23. DECLARE @is_policy_checked varchar (3)  
  24.  
  25. DECLARE @is_expiration_checked varchar (3)  
  26.  
  27. DECLARE @defaultdb sysname  
  28.  
  29. IF (@login_name IS NULL)  
  30.  
  31. DECLARE login_curs CURSOR FOR  
  32.  
  33. SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM  
  34.  
  35. sys.server_principals p LEFT JOIN sys.syslogins l  
  36.  
  37. ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name <> 'sa'  
  38.  
  39. ELSE  
  40.  
  41. DECLARE login_curs CURSOR FOR  
  42.  
  43. SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM  
  44.  
  45. sys.server_principals p LEFT JOIN sys.syslogins l  
  46.  
  47. ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name = @login_name  
  48.  
  49. OPEN login_curs  
  50.  
  51. FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin  
  52.  
  53. IF (@@fetch_status = -1)  
  54.  
  55. BEGIN  
  56.  
  57. PRINT 'No login(s) found.'  
  58.  
  59. CLOSE login_curs  
  60.  
  61. DEALLOCATE login_curs  
  62.  
  63. RETURN -1  
  64.  
  65. END  
  66.  
  67. SET @tmpstr = '/* sp_help_revlogin script ' 
  68.  
  69. PRINT @tmpstr  
  70.  
  71. SET @tmpstr = '** Generated ' + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'  
  72.  
  73. PRINT @tmpstr  
  74.  
  75. PRINT ''  
  76.  
  77. WHILE (@@fetch_status <> -1)  
  78.  
  79. BEGIN  
  80.  
  81. IF (@@fetch_status <> -2)  
  82.  
  83. BEGIN  
  84.  
  85. PRINT ''  
  86.  
  87. SET @tmpstr = '-- Login: ' + @name  
  88.  
  89. PRINT @tmpstr  
  90.  
  91. IF (@type IN ( 'G', 'U'))  
  92.  
  93. BEGIN -- NT authenticated account/group  
  94.  
  95. SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']'  
  96.  
  97. END  
  98.  
  99. ELSE BEGIN -- SQL Server authentication 

obtain password and sid:

  1. SET @PWD_varbinary = CAST( LOGINPROPERTY( @name, 'PasswordHash' ) AS varbinary (256) )  
  2.  
  3. EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT  
  4.  
  5. EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT 

obtain password policy state:

  1. SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN 'ON' WHEN
  2.  0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name  
  3.  
  4. SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN 'ON' WHEN
  5.  0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name  
  6.  
  7. SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' WITH PASSWORD = ' + @PWD_string + ' HASHED, 
  8. SID = ' + @SID_string + 'DEFAULT_DATABASE = [' + @defaultdb + ']'  
  9.  
  10. IF ( @is_policy_checked IS NOT NULL )  
  11.  
  12. BEGIN  
  13.  
  14. SET @tmpstr = @tmpstr + ', CHECK_POLICY = ' + @is_policy_checked  
  15.  
  16. END  
  17.  
  18. IF ( @is_expiration_checked IS NOT NULL )  
  19.  
  20. BEGIN  
  21.  
  22. SET @tmpstr = @tmpstr + ', CHECK_EXPIRATION = ' + @is_expiration_checked  
  23.  
  24. END  
  25.  
  26. END  
  27.  
  28. IF (@denylogin = 1)  
  29.  
  30. BEGIN -- login is denied access  
  31.  
  32. SET @tmpstr = @tmpstr + '; DENY CONNECT SQL TO ' + QUOTENAME( @name )  
  33.  
  34. END  
  35.  
  36. ELSE IF (@hasaccess = 0)  
  37.  
  38. BEGIN -- login exists but does not have access  
  39.  
  40. SET @tmpstr = @tmpstr + '; REVOKE CONNECT SQL TO ' + QUOTENAME( @name )  
  41.  
  42. END  
  43.  
  44. IF (@is_disabled = 1)  
  45.  
  46. BEGIN -- login is disabled  
  47.  
  48. SET @tmpstr = @tmpstr + '; ALTER LOGIN ' + QUOTENAME( @name ) + ' DISABLE'  
  49.  
  50. END  
  51.  
  52. PRINT @tmpstr  
  53.  
  54. END  
  55.  
  56. FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin  
  57.  
  58. END  
  59.  
  60. CLOSE login_curs  
  61.  
  62. DEALLOCATE login_curs  
  63.  
  64. RETURN 0 

 執(zhí)行完以上的代碼,登錄用戶信息的腳本就導出成功了。本篇就介紹到這里,文中若有不妥之處,歡迎大家批評指正。

【編輯推薦】

  1. 巧用DAC解決SQL Server登錄失敗的問題
  2. 如何將系統(tǒng)監(jiān)視器數(shù)據(jù)記錄到SQL Server
  3. 用FOR XML PATH將查詢結(jié)果以XML輸出
  4. 使用SQL Trace來實現(xiàn)SQL Server的跟蹤操作
  5. CTE和WITH AS短語結(jié)合使用提高SQL查詢性能

 

責任編輯:趙鵬 來源: 博客園
相關推薦

2011-07-21 15:42:53

SQL觸發(fā)器存儲過程

2011-04-02 15:22:42

SQL server

2009-04-03 09:00:20

SQL Server2005用戶

2010-07-15 13:14:51

2010-07-16 14:08:39

SQL Server

2011-04-02 15:41:31

2011-04-06 13:04:35

SQL Server 密碼修改

2010-10-21 15:13:20

SQL Server系

2010-06-28 15:06:04

SQL Server

2010-07-08 12:52:58

SQL Server

2011-09-01 16:13:37

Visual StudSQL Server 存儲過程

2009-03-30 15:52:24

數(shù)據(jù)導入導出SQL Server

2009-03-16 14:01:24

正則表達式函數(shù)SQL

2010-07-23 12:55:29

SQL Server

2010-07-13 16:48:14

SQL Server

2011-04-02 16:20:21

SQL SERVER 同步復制

2009-02-23 13:41:42

XML操作函數(shù)SQL Server

2010-07-09 11:06:13

SQL Server

2011-08-04 18:55:53

SQL Server 用戶sa登錄失敗

2011-05-10 16:34:03

MasterSQL Server
點贊
收藏

51CTO技術棧公眾號