Heim Datenbank MySQL-Tutorial MSSQL数据库迁移之用户名问题

MSSQL数据库迁移之用户名问题

Jun 07, 2016 pm 06:00 PM
mssql 数据库迁移

数据库A有用户A,有一些用户A创建的表和SP。迁移时将data目录下的MDF和LDF移到新的MSSQL服务器上,通过附加数据库的功能将数据库恢复。

但是,此时用户A存在于数据库A中,而新的MSSQL中虽然能创建用户A,但无法把权限赋于用户A。新创建一个用户B吧,用户A创建的表和其它信息就又无法访问。在这里找到了解决方法:
在源 SQL Server 上运行以下脚本。此脚本可在 master 数据库中创建名为 sp_hexadecimal 和 sp_help_revlogin 的两个存储过程。请在完成过程的创建之后继续执行第 2 步。
注意:下面的过程取决于 SQL Server 系统表。这些表的结构在 SQL Server 的不同版本之间可能会有变化,请不要直接从系统表中选择。
----- Begin Script, Create sp_help_revlogin procedure -----
代码如下:
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 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 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

----- End Script -----
2. 在创建 sp_help_revlogin 存储过程后,请从源服务器上的查询分析器中运行 sp_help_revlogin 过程。sp_help_revlogin 存储过程可同时用于 SQL Server 7.0 和 SQL Server 2000。sp_help_revlogin 存储过程的输出是登录脚本,该脚本可创建带有原始 SID 和密码的登录。保存输出,然后将其粘贴到目标 SQL Server 上的查询分析器中,并运行它。例如:EXEC master..sp_help_revlogin
代码如下:SP_DEFAULTDB 'cyiyun','DB_WAYUP'
第1步后,在源服务器上运行sp_help_revlogin后,会产生创建用户数据的SQL,例如:
代码如下:
/* sp_help_revlogin script
** 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'
......

把这段直接在新服务器上运行,或者找到相应的用户名创建,就可以解决这个问题了!
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verbinden Sie PHP mit der MSSQL-Datenbank So verbinden Sie PHP mit der MSSQL-Datenbank Oct 23, 2023 pm 12:02 PM

Zu den Methoden, mit denen PHP eine Verbindung zur MSSQL-Datenbank herstellen kann, gehören die Verwendung der MSSQL-Erweiterung von PHP, die Verwendung von PDO usw. Detaillierte Einführung: 1. Verwenden Sie die MSSQL-Erweiterungsmethode von PHP, um sicherzustellen, dass PHP die MSSQL-Erweiterung installiert hat. Sie können überprüfen, ob die MSSQL-Erweiterung in der PHP-Konfigurationsdatei (php.ini) aktiviert ist. 2. Verwenden Sie die PDO-Methode, um sicherzustellen, dass PHP die PDO-Erweiterung installiert hat. Sie können überprüfen, ob die pdo_sqlsrv-Erweiterung in der PHP-Konfigurationsdatei (php.ini) aktiviert ist.

Detaillierte Anleitung zur Installation von PHP und zur Konfiguration der MSSQL-Verbindung unter Ubuntu Detaillierte Anleitung zur Installation von PHP und zur Konfiguration der MSSQL-Verbindung unter Ubuntu Feb 29, 2024 am 11:15 AM

Ubuntu ist ein beliebtes Open-Source-Betriebssystem, das häufig zum Betrieb von Servern verwendet wird. Die Installation von PHP und die Konfiguration von MSSQL-Verbindungen unter Ubuntu gehören zu den Vorgängen, die viele Entwickler und Systemadministratoren häufig ausführen müssen. Dieser Artikel bietet den Lesern eine detaillierte Anleitung, einschließlich der Schritte zur Installation von PHP, der Einrichtung von Apache, der Installation von MSSQLServer usw. sowie dem Anhängen spezifischer Codebeispiele. Schritt 1: PHP und zugehörige Erweiterungen installieren Zuerst müssen wir PHP und zugehörige Erweiterungen installieren, um PHP-Verbindungen zu unterstützen

Tipps zur Datenbankmigration im Django-Framework Tipps zur Datenbankmigration im Django-Framework Jun 17, 2023 pm 01:10 PM

Django ist ein in Python geschriebenes Webentwicklungs-Framework. Es bietet viele praktische Tools und Module, die Entwicklern beim schnellen Erstellen von Websites und Anwendungen helfen. Eine der wichtigsten Funktionen ist die Datenbankmigrationsfunktion, die uns dabei helfen kann, Datenbankschemaänderungen einfach zu verwalten. In diesem Artikel stellen wir einige Tipps zur Verwendung der Datenbankmigration in Django vor, darunter das Starten einer neuen Datenbankmigration, das Erkennen von Datenbankmigrationskonflikten, das Anzeigen historischer Datenbankmigrationsdatensätze usw.

Detaillierte Erläuterung der Schritte zur Installation von PHP zur Unterstützung der MSSQL-Datenbank in der Ubuntu-Umgebung Detaillierte Erläuterung der Schritte zur Installation von PHP zur Unterstützung der MSSQL-Datenbank in der Ubuntu-Umgebung Feb 29, 2024 am 10:39 AM

Detaillierte Schritte zur Installation von PHP zur Unterstützung der MSSQL-Datenbank in einer Ubuntu-Umgebung. Bei der Entwicklung von Webanwendungen kommt es häufig vor, dass Sie eine Verbindung zur Microsoft SQL Server-Datenbank (MSSQL) herstellen müssen. Um in der Ubuntu-Umgebung PHP mit der MSSQL-Datenbank zu verbinden, müssen Sie entsprechende Software installieren und entsprechende Einstellungen konfigurieren. Als nächstes werden wir die Schritte zur Installation von PHP zur Unterstützung der MSSQL-Datenbank in der Ubuntu-Umgebung im Detail vorstellen und spezifischen Code bereitstellen.

Schritte zum Implementieren von Datenbankmigrationen (Migrationen) mithilfe des Zend-Frameworks Schritte zum Implementieren von Datenbankmigrationen (Migrationen) mithilfe des Zend-Frameworks Jul 28, 2023 pm 05:54 PM

Schritte zur Implementierung von Datenbankmigrationen (Migrationen) mithilfe des Zend-Frameworks Einführung: Die Datenbankmigration ist ein unverzichtbarer Teil des Softwareentwicklungsprozesses. Ihre Funktion besteht darin, die Änderung und Versionskontrolle der Datenbankstruktur durch das Team während der Entwicklung zu erleichtern. Das Zend Framework bietet einen leistungsstarken Satz an Datenbankmigrationstools, die uns dabei helfen können, Änderungen an der Datenbankstruktur einfach zu verwalten. In diesem Artikel werden die Schritte zur Verwendung des Zend-Frameworks zur Implementierung der Datenbankmigration vorgestellt und entsprechende Codebeispiele angehängt. Schritt 1: Installieren Sie zuerst das Zend Framework

PHP und SQLite: So führen Sie Datenbankmigrationen und -aktualisierungen durch PHP und SQLite: So führen Sie Datenbankmigrationen und -aktualisierungen durch Jul 28, 2023 pm 08:10 PM

PHP und SQLite: So führen Sie eine Datenbankmigration und -aktualisierung durch. Die Datenbankmigration und -aktualisierung ist eine sehr häufige Aufgabe bei der Entwicklung von Webanwendungen. Für Entwickler, die PHP und SQLite verwenden, kann dieser Prozess komplizierter sein. In diesem Artikel wird die Verwendung von PHP und SQLite für die Datenbankmigration und -aktualisierung vorgestellt und einige Codebeispiele als Referenz bereitgestellt. Erstellen Sie eine SQLite-Datenbank. Zuerst müssen wir eine SQLite-Datenbank erstellen. Die Verwendung einer SQLite-Datenbank ist für uns sehr praktisch

Vollständiges Tutorial zur Installation von PHP und zum Herstellen einer Verbindung zur MSSQL-Datenbank unter Ubuntu Vollständiges Tutorial zur Installation von PHP und zum Herstellen einer Verbindung zur MSSQL-Datenbank unter Ubuntu Feb 29, 2024 am 11:18 AM

Die Installation von PHP und die Verbindung zur MSSQL-Datenbank unter dem Ubuntu-Betriebssystem gehört zu den Fähigkeiten, die viele Entwickler und Systemadministratoren beherrschen müssen. Dieser Artikel bietet ein detailliertes Tutorial, einschließlich der Installation von PHP, der Installation des serverseitigen MSSQL-Treibers, der Konfiguration von PHP für die Verbindung mit der MSSQL-Datenbank und der Bereitstellung entsprechender Codebeispiele. Teil eins: PHP installieren Zuerst müssen wir PHP und zugehörige Erweiterungen installieren, um eine Verbindung zur MSSQL-Datenbank herstellen zu können. Geben Sie im Terminal den folgenden Befehl ein, um PHP und die erforderlichen Erweiterungen zu installieren

So migrieren Sie eine MySQL-Datenbank So migrieren Sie eine MySQL-Datenbank Feb 21, 2024 pm 04:00 PM

Unter MySQL-Datenbankmigration versteht man den Prozess der Migration von Daten und Strukturen in einer Datenbank in eine andere. In tatsächlichen Projekten kann es vorkommen, dass Sie die Datenbank auf einen neuen Server migrieren, die Datenbankversion aktualisieren, mehrere Datenbanken zusammenführen usw. müssen. Im Folgenden wird die Migration einer MySQL-Datenbank vorgestellt und spezifische Codebeispiele bereitgestellt. Exportieren Sie die Originaldatenbank. Verwenden Sie zunächst das Exporttool auf dem Server, auf dem sich die Originaldatenbank befindet, um die Daten und die Struktur in eine SQL-Datei zu exportieren. Zu den häufig verwendeten Exporttools gehört der Befehl mysqldump

See all articles