Ich versuche die folgende Vorlage zu verwenden:
-- =================================================
-- Create User as DBO template for SQL Azure Database
-- =================================================
-- For login <login_name, sysname, login_name>, create a user in the database
CREATE USER <user_name, sysname, user_name>
FOR LOGIN <login_name, sysname, login_name>
WITH DEFAULT_SCHEMA = <default_schema, sysname, dbo>
GO
-- Add user to the database owner role
EXEC sp_addrolemember N'db_owner', N'<user_name, sysname, user_name>'
GO
Ich möchte einen Benutzer namens user1 mit dem Passwort 'user1pass' erstellen. Ich habe eine Verbindung mit meiner Standarddatenbank "Authentifizierung" hergestellt und ein Abfragefenster geöffnet.
Aber die Vorlage macht für mich keinen Sinn. Was ist zum Beispiel sysname, wo gebe ich das Passwort ein und was soll ich als Standardschema verwenden?
Der jeweilige Benutzer muss die Macht haben, alles zu tun. Aber wie richte ich es ein, damit er alles kann? Wird das gemacht, wenn ich den Benutzer zum Datenbankbesitzer mache?
Bisher habe ich versucht:
CREATE USER user1, sysname, user1
FOR LOGIN user1, sysname, user1
WITH DEFAULT_SCHEMA = dbo, sysname, dbo
GO
Geben:
Meldung 102, Ebene 15, Status 1, Zeile 1 Falsche Syntax in der Nähe von ','.
und:
CREATE USER user1
FOR LOGIN user1
WITH DEFAULT_SCHEMA = dbo
GO
Geben:
Meldung 15007, Ebene 16, Status 1, Zeile 1 'Benutzer1' i
s kein gültiges Login oder Sie haben keine Berechtigung.
quelle
Antworten:
Unter diesem Link finden Sie alle Informationen: https://azure.microsoft.com/en-us/blog/adding-users-to-your-sql-azure-database/
Zuerst müssen Sie eine Anmeldung für SQL Azure erstellen. Die Syntax lautet wie folgt:
CREATE LOGIN username WITH password='password';
Dieser Befehl muss in der Master-Datenbank ausgeführt werden. Erst danach können Sie Befehle ausführen, um einen Benutzer in der Datenbank zu erstellen. Die Funktionsweise von SQL Azure oder SQL Server besteht darin, dass zuerst auf Serverebene ein Login erstellt und dann in jeder Datenbank einem Benutzer zugeordnet wird.
HTH
quelle
In a contained database, creating users helps separate the database from the instance of the Database Engine so that the database can easily be moved to another instance of SQL Server.
docs.microsoft.com/en-us/sql/t-sql/statements/…Bearbeiten - Enthaltener Benutzer (Version 12 und höher)
Ab SQL Azure 12 werden Datenbanken als enthaltene Datenbanken erstellt, mit denen Benutzer direkt in Ihrer Datenbank erstellt werden können, ohne dass eine Serveranmeldung über den Master erforderlich ist.
CREATE USER [MyUser] WITH PASSWORD = 'Secret'; ALTER ROLE [db_datareader] ADD MEMBER [MyUser];
Beachten Sie beim Herstellen einer Verbindung zur Datenbank, wenn Sie einen enthaltenen Benutzer verwenden, dass Sie die Datenbank immer in der Verbindungszeichenfolge angeben müssen.
Herkömmliche Serveranmeldung - Datenbankbenutzer (Pre v 12)
Um die Antwort von @ Igorek zu ergänzen, können Sie in SQL Server Management Studio Folgendes tun:
Erstellen Sie die neue Anmeldung auf dem Server
In
master
(über dasAvailable databases
Dropdown-Menü in SSMS - dies liegt daran, dassUSE master
dies in Azure nicht funktioniert):Erstellen Sie den Login:
CREATE LOGIN username WITH password='password';
Neuen Benutzer in der Datenbank erstellen
Wechseln Sie zur eigentlichen Datenbank (erneut über die Dropdown-Liste verfügbare Datenbanken oder eine neue Verbindung).
CREATE USER username FROM LOGIN username;
(Ich habe angenommen, dass Sie möchten, dass der Benutzer und die Anmeldungen als verknüpft werden
username
, aber ändern, wenn dies nicht der Fall ist.)Fügen Sie nun den Benutzer zu den relevanten Sicherheitsrollen hinzu
(Offensichtlich sollte ein App-Benutzer weniger Berechtigungen haben als
dbo
.)quelle
CREATE LOGIN
Schritt nicht benötigen . Ich habe aktualisiert.Ich habe die Antworten hier befolgt, aber als ich versuchte, eine Verbindung mit meinem neuen Benutzer herzustellen, wurde eine Fehlermeldung angezeigt
"The server principal 'newuser' is not able to access the database 'master' under the current security context"
.Ich musste auch einen neuen Benutzer in der Mastertabelle erstellen, um mich erfolgreich bei SSMS anzumelden.
USE [master] GO CREATE LOGIN [newuser] WITH PASSWORD=N'blahpw' GO CREATE USER [newuser] FOR LOGIN [newuser] WITH DEFAULT_SCHEMA=[dbo] GO USE [MyDatabase] CREATE USER newuser FOR LOGIN newuser WITH DEFAULT_SCHEMA = dbo GO EXEC sp_addrolemember N'db_owner', N'newuser' GO
quelle
Sie können einfach einen enthaltenen Benutzer in SQL DB V12 erstellen.
Create user containeduser with password = 'Password'
Die Anmeldung eines enthaltenen Benutzers ist effizienter als die Anmeldung bei der Datenbank mit der vom Master erstellten Anmeldung. Weitere Informationen finden Sie unter http://www.sqlindepth.com/contained-users-in-sql-azure-db-v12/
quelle
Ich verwende das Azure Management-Konsolentool von CodePlex mit einer sehr nützlichen Benutzeroberfläche. Probieren Sie es aus. Sie können Code eingeben.
quelle
CodePlex
wird heruntergefahren. Spiegel Download-Speicherort - firebasestorage.googleapis.com/v0/b/amber-heat-4041.appspot.com/…Erstellen Sie einen Benutzer und fügen Sie ihn dann einer bestimmten Rolle hinzu:
CREATE USER [test] WITH PASSWORD=N'<strong password>' go ALTER ROLE [db_datareader] ADD MEMBER [test] go
quelle
Ich denke, die Vorlagen verwenden die folgende Notation: Variablenname, Variablentyp, Standardwert.
Sysname ist ein integrierter Datentyp, der die Namen von Systemobjekten enthalten kann.
Es ist auf 128 Unicode-Zeichen beschränkt.
-- same as sysname type declare @my_sysname nvarchar(128);
quelle
Ich fand diesen Link sehr hilfreich:
https://azure.microsoft.com/en-gb/documentation/articles/sql-database-manage-logins/
Es enthält Details zu folgenden Themen:
- Azure SQL-Datenbank-Abonnentenkonto
- Verwenden von Azure Active Directory-Benutzern für den Zugriff auf die Datenbank
- Hauptkonten auf Serverebene (uneingeschränkter Zugriff)
- Hinzufügen von Benutzern zur
dbmanager
DatenbankrolleIch habe diese und Stuarts Antwort verwendet, um Folgendes zu tun:
In der
master
Datenbank (siehe Link, wer die Berechtigungen dazu hat):CREATE LOGIN [MyAdmin] with password='ReallySecurePassword'
Und dann auf der fraglichen Datenbank:
CREATE USER [MyAdmin] FROM LOGIN [MyAdmin] ALTER ROLE db_owner ADD MEMBER [MyAdmin]
Sie können auch solche Benutzer gemäß dem Link erstellen:
CREATE USER [[email protected]] FROM EXTERNAL PROVIDER;
quelle