kann ich SQL Server-Datenbanknamen mit Bindestrichen wie abc-123 angeben?

7

Ich habe eine SQL-Server-Datenbank mit dem Namen abc-123 erstellt, indem ich eine Tabelle Emp erstellt habe, wenn ich wie

renne
select * from abc-123.emp;
Ich bekomme die Ergebnisse. Aber wenn ich versuche, dem Benutzer ein Privileg zu gewähren, kann ich das nicht tun, bekomme Syntaxfehler nahe Bindestrich.

Wird mir jemand helfen?

    
Venu Gopal Reddy 08.01.2014, 12:15
quelle

3 Antworten

20

Stellen Sie sicher, dass Sie die Namen mit [] (T-SQL) oder "" (ANSI SQL) umgehen. Sie verwenden nicht standardmäßige Benennung.

%Vor%

1 - Können Sie mir ein Beispiel für die TSQL-Finanzhilfe senden? Wenn Sie die Aktion von SSMS ausführen, klicken Sie mit der rechten Maustaste und schreiben Sie den Code.

2 - Hier ist der Link zum Befehl GRANT TSQL. Ich sehe keine Syntax wie Sie es versuchen.

Ссылка

%Vor%

Erstens sollte es [drupal@localhost] sein. Zweitens habe ich die IDENTIFIED BY -Klausel nie gesehen. Woher bekommst du diese Informationen?

3 - Hier ist ein schnelles TSQL-Skript, das eine schlecht benannte Datenbank und Benutzer erstellt. Ändern Sie nach Möglichkeit den Namen der Datenbank und des Benutzers.

Wenn Sie Berechtigungen auf anderer Tabellenebene als "db_owner" erteilen (sehr granular und viel Wartung), erstellen Sie eine benutzerdefinierte Datenbankrolle. Fügen Sie der Rolle Sicherungskopien hinzu und fügen Sie Ihrer Rolle den Benutzer hinzu.

Ссылка

Beispielcode.

%Vor%

Ausgabe mit Benutzer in der Gruppe db_owner.

    
CRAFTY DBA 08.01.2014, 12:19
quelle
1

Verwenden Sie [] rund um den Datenbanknamen:

%Vor%

ODER

%Vor%     
Ajay Punekar 08.01.2014 12:44
quelle
0

Wenn Sie Datenbankname mit Tabellenname verwenden, dann nehmen Sie an, dass auch der schema name angegeben wird.

%Vor%     
Radhamani Muthusamy 08.01.2014 12:25
quelle

Tags und Links