1. 程式人生 > >SQL SERVER 登入名遷移

SQL SERVER 登入名遷移

DROP PROCEDURE sp_hexadecimal GO CREATE PROCEDURE sp_hexadecimal @binvalue varbinary(256), @hexvalue varchar (514) OUTPUT AS DECLARE @charvalue varchar (514) DECLARE @i int DECLARE @length int DECLARE @hexstring char(16) SELECT @charvalue = '0x' SELECT @i = 1 SELECT @length = DATALENGTH (@binvalue) SELECT
@hexstring = '0123456789ABCDEF' WHILE (@i <= @length) BEGIN DECLARE @tempint int DECLARE @firstint int DECLARE @secondint int SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1)) SELECT @firstint = FLOOR(@tempint/16) SELECT @secondint = @tempint - (@firstint*16) SELECT
@charvalue = @charvalue + SUBSTRING(@hexstring, @firstint+1, 1) + SUBSTRING(@hexstring, @secondint+1, 1) SELECT @i = @i + 1 END SELECT @hexvalue = @charvalue GO IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL DROP PROCEDURE sp_help_revlogin GO CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL
AS DECLARE @name sysname DECLARE @type varchar (1) DECLARE @hasaccess int DECLARE @denylogin int DECLARE @is_disabled int DECLARE @PWD_varbinary varbinary (256) DECLARE @PWD_string varchar (514) DECLARE @SID_varbinary varbinary (85) DECLARE @SID_string varchar (514) DECLARE @tmpstr varchar (1024) DECLARE @is_policy_checked varchar (3) DECLARE @is_expiration_checked varchar (3) DECLARE @defaultdb sysname IF (@login_name IS NULL) DECLARE login_curs CURSOR FOR SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM sys.server_principals p LEFT JOIN sys.syslogins l ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name <> 'sa' ELSE DECLARE login_curs CURSOR FOR SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM sys.server_principals p LEFT JOIN sys.syslogins l ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name = @login_name OPEN login_curs FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin 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 '' WHILE (@@fetch_status <> -1) BEGIN IF (@@fetch_status <> -2) BEGIN PRINT '' SET @tmpstr = '-- Login: ' + @name PRINT @tmpstr IF (@type IN ( 'G', 'U')) BEGIN -- NT authenticated account/group SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']' END ELSE BEGIN -- SQL Server authentication -- obtain password and sid SET @PWD_varbinary = CAST( LOGINPROPERTY( @name, 'PasswordHash' ) AS varbinary (256) ) EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT -- obtain password policy state SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' WITH PASSWORD = ' + @PWD_string + ' HASHED, SID = ' + @SID_string + ', DEFAULT_DATABASE = [' + @defaultdb + ']' IF ( @is_policy_checked IS NOT NULL ) BEGIN SET @tmpstr = @tmpstr + ', CHECK_POLICY = ' + @is_policy_checked END IF ( @is_expiration_checked IS NOT NULL ) BEGIN SET @tmpstr = @tmpstr + ', CHECK_EXPIRATION = ' + @is_expiration_checked END END IF (@denylogin = 1) BEGIN -- login is denied access SET @tmpstr = @tmpstr + '; DENY CONNECT SQL TO ' + QUOTENAME( @name ) END ELSE IF (@hasaccess = 0) BEGIN -- login exists but does not have access SET @tmpstr = @tmpstr + '; REVOKE CONNECT SQL TO ' + QUOTENAME( @name ) END IF (@is_disabled = 1) BEGIN -- login is disabled SET @tmpstr = @tmpstr + '; ALTER LOGIN ' + QUOTENAME( @name ) + ' DISABLE' END PRINT @tmpstr END FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin END CLOSE login_curs DEALLOCATE login_curs RETURN 0 GO

相關推薦

SQL SERVER 登入遷移

DROP PROCEDURE sp_hexadecimal GO CREATE PROCEDURE sp_hexadecimal @binvalue varbinary(256), @hexvalue varchar (514) OUTPUT AS DECLARE @c

SQL Server 登入、伺服器角色、使用者名稱和資料庫角色 --- 解釋

一、基本解釋 登入名:登入伺服器的使用者賬號;   伺服器角色:登入名對該伺服器具有的許可權,角色分多種的,一個角色可以有多個登入名,如作業系統的系統使用者可以有多個。   SQL伺服器角色  sysadmin     &nb

刪除SQL Server登入時下拉列表中出現之前刪除的登入

SQL SERVER在刪除自己建立的登入名之後,再次登入時總是顯示之前刪除的登入名,很是苦惱,原因在此,刪除此資料夾中的這個檔案: 刪除路徑是: SQL Server Management Studio 2016 delete the file C:\Users\%username%\A

SQL Server登入方式

SQL Server登入伺服器有兩種驗證方式,一種是windows身份驗證,也就是本機驗證,另一種就是SQL Server驗證,就是使用賬號密碼的方式驗證。 在使用windows身份驗證登入時,直接就能登入資料庫。登入時,伺服器名稱可以是一個英文的點‘.’,也可以是(local),都是代表本機。 如果使用

使用 Navicat for MySQL 將 sql server 的資料庫遷移到 mysql 的資料庫中

【摘要】本文介紹一下如何使用 Navicat Premium 工具將 sql server 的資料庫遷移到 mysql 的資料庫中,本人親測,可用。 前提:Navicat Premium 11.2.7 版本(我是在已破解的情況,不知道使用版的可否實現) 伺服器系統:w

SQL Server登入使用者只能看到自己的資料庫設定辦法

問題背景:公司的一臺資料庫伺服器上放在多個數據庫,每個資料庫都使用不同的登入名稱,雖然每個登陸名不能訪問其他的資料庫但還是有安全隱患的現在我需要的是指定的登入使用者只能看到並訪問它自己的資料庫而不能看到其他的資料庫1.建立資料庫2.建立SQL新使用者3.賦予自己擁有管理許可權

關於 SQL Server 登入問題(錯誤 233和18456)的解決方法

此次遇到的問題型別為:錯誤233 和 錯誤18456 錯誤233 已成功與伺服器建立連線,但是在登入過程中發生錯取。(provider:共享記憶體提供程式,error:0-管道的另一端上無任何程序。)(Microsoft SQL Server,錯誤:233) 解

SQL Server GUID 資料遷移至MongoDB後怎樣檢視?

關鍵字:SQL Server NEWID();BSON;MongoDB UUID 1.遇到的問題和困惑  SQL Server中的NEWID資料儲存到MongoDB中會是什麼樣子呢?發現不能簡單的通過此資料查詢了。 例如我們將SQL Server 資料庫中的QQStatements2019表遷

sql server登入時出現錯誤233的解決辦法

      今天也不知道sql server抽了什麼風,無論是windows登入還是sa登入,登入的時候總是提示錯誤233。windows登入錯誤是根本不能建立連線,初始化錯誤,給了很多原因,sql版本不對啦,連線數超過限制啦;sa登入時錯誤是連線已建立,但登入過程中發生錯

SQL Server登入錯誤的幾種解決方案

       最近客戶讓我給他們把資料匯入到資料庫中,但是我的SQL Server特別的不給力,關鍵的時候跳出了一堆的錯誤,我估計這是我用資料庫到現在,遇到最多的一次錯誤了,花費了一晚個上的時間除錯,

SQL Server登入連線失敗之解決方案

    自己的資料庫連線一直用的好好的,但是2014年8月3號,當自己下午需要用到的資料庫的時候,去開啟,卻發現一直在報錯,怎麼回事,看到那個報出的錯誤,自己開始的時候並不怕,因為是很常見的錯誤,以前

Java 訪問SQL server 物件無效

使用者已經登陸上去,但是卻不能訪問裡邊的資料表,出現這個問題的原因在於sa使用者為系統使用者,它雖然能夠登陸資料庫,但是storeManager資料庫裡邊卻沒有這個使用者的訪問許可權,所以,我們現在為這個資料庫重新建立一個使用者share ,建立過程如下:在storeManager資料庫中選重使用者 ---〉

使用SQL Server Management Studio操作replication時,要用機器登入,不要用IP地址

如果你在使用SSMS(SQL Server Management Studio)登入SQL Server時,使用的是IP地址,如下圖所示: 當你操作replication時,會報錯:   從上面的錯誤提示可以看出,我們只能通過機器名(server name)來登入SSMS,才能夠操

SQL Server 只讀賬號/只讀登入可檢視儲存過程及函式許可權

公司為了收緊生產資料庫的登入名,目前我們公司生產資料庫登入名基本賦予了sa賬戶的許可權,這樣做是很危險的,所以領導要求給運維同事授予資料庫只讀查詢的賬號,但同時又需要讓運維同事可檢視儲存過程,因為儲存過程和函式中有很多攔截異常的判斷,當提示報錯內容時,運維同事可以通過報錯的關

SQL Server 伺服器更名及新增Windows登入

虛擬機器安裝好 SQL Server ,發覺伺服器名字忘改了。所以下面就更改了伺服器名稱及在SQLServer中刪除新增Windows登入名。 直接更改Windows計算機名稱,改完重啟電腦 重啟系統後,登入SQLServer失敗。因為當前的Windows預設登入

SQL Server 關聯使用者與登入

當在另一臺伺服器恢復資料庫時,資料庫使用者名稱無法與登入名建立關聯,用管理工具無法將登入名與使用者關聯,只能用SQL來實現,具體如下。 use 資料庫名exec sp_change_users_login 'update_one','使用者名稱','登入名' 說明:使用者名

繫結sql server資料庫的使用者與登入

伺服器重灌系統,重新安裝上sql server,附加上以前的資料庫, 然後以前是每個資料庫都有一個登入用於操作該資料庫,其他資料庫不能操作的, 附加上資料庫後該資料庫安全性裡的使用者能看到以前建立好的使用者,但是在外面的系統級安全性的登入名中沒有對應的使用者,一個登入使用者了又直接提示使用者已存在的, 上網

sql server 建立命令列登入

建立登入名 create login loginName with password='password', default_database=database 說明:loginName 是要建立的登入名,password 是要該登入名的密碼 data

SQL Server將資料庫的使用者名稱對映到登入

將資料庫伺服器上的資料庫檔案拷貝到另外一臺機器上,附加後,新建登入名時無法將原資料庫使用者對映到此登入名。這樣用新建的登入名訪問資料庫時,必須要以“架構名.物件名”的形式才可以。 通過以下方式可以解決該問題: 步驟1:  exec sp_change_users_l

Sql Server 2008 R2資料庫之登入、使用者、架構、許可權和角色

原文地址http://www.shaoqun.com/a/106188.aspx 這幾天先是研究了一下有關資料庫的安全性、許可權等方面的東西,那就是先說一下資料庫安全性和許可權的問題,首先是對資料庫的登入名、使用者和架構做一個簡單的介紹。登入名大家都知道就是登入資料庫時