Erteilen eines SQL server-Login-Zugriffs auf eine database – SQL server

Ich möchte den Zugriff auf eine database für eine SQL server-Anmeldung gewähren. Ich weiß über sp_grantdbaccess, aber es ist veraltet. Was kann ich stattdessen verwenden und wie kann ich überprüfen, ob die Anmeldung noch nicht Zugriff auf die database hat?

Szenario: UserA erstellt database – in sys.database_principals Ich habe einen Eintrag mit dem Namen dbo und mit dem sid von UserA. Ich versuche, UserA-Genehmigungen wieder zu gewähren: Ich versuche, eine Auswahl auf sys.database_principals durch name = 'UserA' zu machen, aber da der Name dbo nicht UserA ist, bekomme ich einen Fehler – 'Die Anmeldung hat bereits ein Konto unter einem anderen Benutzernamen . Wie kann ich feststellen, ob der Benutzer den databasezugriff ohne Sid hat?

Sie wollen wahrscheinlich CREATE USER

z.B

CREATE USER bobuser FOR LOGIN boblogin 

Der sys.database_principals securityskatalog hat eine list der databasebenutzer, so dass Sie sicherstellen können, dass Sie noch keinen mit diesem Namen haben.

Zuerst müssen Sie einen Benutzer in dieser database für die Login-Frage erstellen. Um dies zu tun, verwenden Sie Create User . Wenn Sie feststellen möchten, ob der Benutzer bereits vorhanden ist, können sys.database_principals Katalogsicht sys.database_principals , indem Sie für type = 'U' filtern. Wenn Sie feststellen möchten, ob ein bestimmter Benutzer bereits in einer Rolle ist, können Sie sys.database_role_members .