Erstellen von SQL Server-Anmeldung per script mit der Variablen
Ich versuche zum erstellen einer SQL Server-Anmeldung nach der Erstellung einer Datenbank durch das Skript.
Die Anmeldung lokal auf dem host-PC und dieses Skript ausgeführt wird, auf mehrere hosts.
Was ich tun will ist Folgendes:
USING MyDatabase
CREATE MyUser FOR LOGIN USER <computer name>/MyUser
Was ich nicht weiß, wie zu tun ist, übernehmen die computer-Namen (ex. Location0001) in dieser Aussage.
Login existiert auf jedem Rechner UND ist bereits aufgeführt, auf dem SQL Server hat den Zugriff auf andere Datenbanken gibt.
Wenn es relevant ist, das Skript sollte in der Lage sein, auf SQL Server ausgeführt wird 2008.
Dem login würde dann so Aussehen für jede Maschine:
Location0001\MyUser
Location0002\MyUser
Location0999\MyUser
Jede Hilfe wäre dankbar, danke.
Edit: Meine endgültige Lösung auf der Grundlage der akzeptierten Antwort ist wie folgt:
DECLARE @cmd VARCHAR(200)
SET @cmd = N'CREATE USER [MyUser] FOR LOGIN [' + HOST_NAME() + '\MyUser]'
EXEC (@cmd)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie verwenden Sie die @@servername-Eigenschaft, um den Namen der Maschine:
select @@servername
@@servername
zurück "MASCHINE\INSTANZ', so ERSTELLEN Sie BENUTZER schlägt fehl. Sie müssen entwederHOST_NAME()
wie OP vorgeschlagen, oderServerProperty('MachineName')
je nachdem, was Sie versuchen zu erreichen. Ich weiß, das beantwortet wurde - ich Schreibe für jene, die hier aus web-Recherchen.