Hallo,
ich habe es nun endlich geschafft, trotz vieler Probleme einen gespiegelten SQL Server 2005 einzurichten. Läuft soweit auch alles ganz prima. Jedoch benötige ich ja im Falle eines Failovers auf dem Mirror auch die entsprechenden Logins mit den richtigen SID`s.
Dazu wollte ich mir ein Script schreiben, welches einmalig die synchronen Logins erstelllt. Jedoch stoße ich auf komische Probleme.
Script:
--Erstellung des Linked Servers
if (exists (SELECT * FROM master.dbo.sysservers WHERE 'PRINZIPALServ' = srvname))
exec sp_dropserver 'PRINZIPALServ' ,'droplogins'
GO
EXEC sp_addlinkedserver @server='PRINZIPALServ', @srvproduct='',@provider='SQLOLEDB', @datasrc='##Servername des Prinzipals##'
GO
EXEC sp_addlinkedsrvlogin @rmtsrvname ='PRINZIPALServ', @useself='false', @rmtuser ='sa', @rmtpassword ='##Passwort des SA##'
GO
USE master
go
-- Auslesen des SID aus dem Linked Server
declare @prinzSID varbinary(16)
select @prinzSID = (select sid from PRINZIPALServ.master.sys.sql_logins where name=##NAME DES LOGINS##)
--Erstellung des Logins
if (NOT exists (select * from sys.syslogins where [name] = ##NAME DES LOGINS##))
CREATE LOGIN ##NAME DES LOGINS## WITH PASSWORD = ##PW des LOGINS##, DEFAULT_DATABASE=##Name der DB##, SID=@prinzSID, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;
Ende Script
Ich bekomme aber immer einen Fehler:
Meldung 102, Ebene 15, Status 1, Zeile 5
Falsche Syntax in der Nähe von '@prinzSID'.
(das ist die Stelle innerhalb der Create Login Anweisung)
Der Select und der Linked Server funktionieren aber und geben auch einen SID zurück. Was mache ich falsch? bzw wer kann mir helfen?
Ich bekomme den Fehler auch wenn ich an der Stelle SID = 'irgendwas angebe'
Vielen Dank schon Mal!
MFG Chris
ich habe es nun endlich geschafft, trotz vieler Probleme einen gespiegelten SQL Server 2005 einzurichten. Läuft soweit auch alles ganz prima. Jedoch benötige ich ja im Falle eines Failovers auf dem Mirror auch die entsprechenden Logins mit den richtigen SID`s.
Dazu wollte ich mir ein Script schreiben, welches einmalig die synchronen Logins erstelllt. Jedoch stoße ich auf komische Probleme.
Script:
--Erstellung des Linked Servers
if (exists (SELECT * FROM master.dbo.sysservers WHERE 'PRINZIPALServ' = srvname))
exec sp_dropserver 'PRINZIPALServ' ,'droplogins'
GO
EXEC sp_addlinkedserver @server='PRINZIPALServ', @srvproduct='',@provider='SQLOLEDB', @datasrc='##Servername des Prinzipals##'
GO
EXEC sp_addlinkedsrvlogin @rmtsrvname ='PRINZIPALServ', @useself='false', @rmtuser ='sa', @rmtpassword ='##Passwort des SA##'
GO
USE master
go
-- Auslesen des SID aus dem Linked Server
declare @prinzSID varbinary(16)
select @prinzSID = (select sid from PRINZIPALServ.master.sys.sql_logins where name=##NAME DES LOGINS##)
--Erstellung des Logins
if (NOT exists (select * from sys.syslogins where [name] = ##NAME DES LOGINS##))
CREATE LOGIN ##NAME DES LOGINS## WITH PASSWORD = ##PW des LOGINS##, DEFAULT_DATABASE=##Name der DB##, SID=@prinzSID, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;
Ende Script
Ich bekomme aber immer einen Fehler:
Meldung 102, Ebene 15, Status 1, Zeile 5
Falsche Syntax in der Nähe von '@prinzSID'.
(das ist die Stelle innerhalb der Create Login Anweisung)
Der Select und der Linked Server funktionieren aber und geben auch einen SID zurück. Was mache ich falsch? bzw wer kann mir helfen?
Ich bekomme den Fehler auch wenn ich an der Stelle SID = 'irgendwas angebe'
Vielen Dank schon Mal!
MFG Chris
Comment