亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠(chéng)為您提供優(yōu)質(zhì)的服務(wù)! 誠(chéng)征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購(gòu)買流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊(cè) ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

MSSQL數(shù)據(jù)庫遷移之用戶名問題

添加時(shí)間:2014-3-9 17:35:21  添加: 思海網(wǎng)絡(luò) 
用戶A存在于數(shù)據(jù)庫A中,而新的MSSQL中雖然能創(chuàng)建用戶A,但無法把權(quán)限賦于用戶A。新創(chuàng)建一個(gè)用戶B吧,用戶A創(chuàng)建的表和其它信息就又無法訪問。在這里找到了解決方法: 
在源 SQL Server 上運(yùn)行以下腳本。此腳本可在 master 數(shù)據(jù)庫中創(chuàng)建名為 sp_hexadecimal 和 sp_help_revlogin 的兩個(gè)存儲(chǔ)過程。請(qǐng)?jiān)谕瓿蛇^程的創(chuàng)建之后繼續(xù)執(zhí)行第 2 步。 
注意:下面的過程取決于 SQL Server 系統(tǒng)表。這些表的結(jié)構(gòu)在 SQL Server 的不同版本之間可能會(huì)有變化,請(qǐng)不要直接從系統(tǒng)表中選擇。 
----- Begin , Create sp_help_revlogin procedure ----- 
復(fù)制代碼 代碼如下:

USE master 
GO 
IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL 
DROP PROCEDURE sp_hexadecimal 
GO 
CREATE PROCEDURE sp_hexadecimal 
@binvalue varbinary(256), 
@hexvalue varchar(256) OUTPUT 
AS 
DECLARE @charvalue varchar(256) 
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 @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
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 

----- End ----- 
2. 在創(chuàng)建 sp_help_revlogin 存儲(chǔ)過程后,請(qǐng)從源服務(wù)器上的查詢分析器中運(yùn)行 sp_help_revlogin 過程。sp_help_revlogin 存儲(chǔ)過程可同時(shí)用于 SQL Server 7.0 和 SQL Server 2000。sp_help_revlogin 存儲(chǔ)過程的輸出是登錄腳本,該腳本可創(chuàng)建帶有原始 SID 和密碼的登錄。保存輸出,然后將其粘貼到目標(biāo) SQL Server 上的查詢分析器中,并運(yùn)行它。例如:EXEC master..sp_help_revlogin 
復(fù)制代碼 代碼如下:
SP_DEFAULTDB 'cyiyun','DB_WAYUP'

第1步后,在源服務(wù)器上運(yùn)行sp_help_revlogin后,會(huì)產(chǎn)生創(chuàng)建用戶數(shù)據(jù)的SQL,例如: 
復(fù)制代碼 代碼如下:

/* sp_help_revlogin  
** Generated 06 24 2009 1:40PM on WORKGROU-B1XTVC */ 
DECLARE @pwd sysname 
-- Login: hxtest 
SET @pwd = CONVERT (varbinary(256), 0x0100CF4E7D342B359438E4BCCA72E6C83F44FCCF30C8016286DE2B359438E4BCCA72E6C83F44FCCF30C8016286DE)
EXEC master..sp_addlogin '520web', @pwd, @sid = 0x1738BB6AD0CD24498F67FB5589E8EDCB, @encryptopt = 'skip_encryption' 
...... 

把這段直接在新服務(wù)器上運(yùn)行,或者找到相應(yīng)的用戶名創(chuàng)建,就可以解決這個(gè)問題了!

關(guān)鍵字:MSSQL、數(shù)據(jù)庫、服務(wù)器

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證: 粵B1.B2-20030321 備案號(hào):粵B2-20030321-1
網(wǎng)站公安備案編號(hào):44060602000007 交互式欄目專項(xiàng)備案編號(hào):200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開網(wǎng)站