vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
SQL Server: Wie kann ich User per Code anlegen? 
Autor: Larsen
Datum: 16.06.05 15:24

Hallo,

gibt es einen SQL-Befehl mit dem ich unter Microsoft SQL Server einen neuen Benutzer anlegen kann und wie lautet dieser?


Gruß,
Lars
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Server: Wie kann ich User per Code anlegen? 
Autor: CyberDreams
Datum: 16.06.05 16:07

Warum schreiben eigentlich alle ihre SQL und Datenbank-Fragen ins Einsteigerforum???

Es gibt doch EXTRA eine Kategorie VB & Datenbanken!!!

PS: Man müsste zumindest mal wissen, wie die Datenbankstruktur aussieht (In welcher Tabelle das drinsteht und wie die Felder dort heißen, wo die Daten reingeschrieben werden!)

INSERT INTO Zieltabelle (Zielfeld1, Zielfeld2,...) VALUES (WertFürZielFeld1, WertFürZielFeld2, WertFürZielFeld3,....)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Server: Wie kann ich User per Code anlegen? 
Autor: Larsen
Datum: 16.06.05 16:15

Uups, sorry - hab ich übersehen.


Es geht nicht um meine eigenen Tabellen, sondern um die des SQL Servers. Ich habe bei dem entsprechenden Server keinen Enterprise Manager zur Verfügung mit dem ich einen User anlegen könnte.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Server: Wie kann ich User per Code anlegen? 
Autor: CyberDreams
Datum: 16.06.05 16:45

Ja, aber du weißt hoffentlich, wie die Tabelle heißt, wo die entsprechenden Felder drin sind...und weißt aber auch, wie die Felder heißen, wo du die Daten eintragen musst/kannst!?!?!

Nur noch Verbindung zum Server aufbauen und mit og Befehl Daten in die Datenbank schieben (INSERT INTO .....)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Server: Wie kann ich User per Code anlegen? 
Autor: Larsen
Datum: 16.06.05 16:51

> Ja, aber du weißt hoffentlich, wie die Tabelle heißt, wo die entsprechenden Felder drin sind...und weißt aber auch, wie die Felder heißen, wo du die Daten eintragen musst/kannst!?!?!


Tja, genau das ist ja mein Problem... Ich müsste halt wissen, welche Felder befüllt werden müssen, bzw. überhaupt erstmal wissen, welche DB und Tabelle auf dem SQL Server dafür zuständig ist.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Server: Wie kann ich User per Code anlegen? 
Autor: CyberDreams
Datum: 16.06.05 16:56

Hm. In dem Fall ist das sehr wahrscheinlich nicht nur mit einem einzigen Befehl getan!

Du musst erst mal ne Connection zu der Datenbank herstellen. Es gibt Funktionen, wo du die in der Datenbank enthaltenen Tabellen herauslesen kannst. Und wenn du eine Tabelle hast, kannst du auch die darin enthaltenen Felder auslesen....
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Server: Wie kann ich User per Code anlegen? 
Autor: Larsen
Datum: 16.06.05 17:04

Ich habe die Möglichkeit, mit dem SQL Query Analyzer SQL-Befehle an den Server zu senden. Ein VB-Programm ist daher nicht zwingend notwendig.

Bei MySQL gibt es die Datenbank "mysql" und darin die Tabelle "user". Da kann man also sehr einfach neue User über einen SQL-Befehl anlegen.

Aber wie geht dies beim SQL-Server?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Server: Wie kann ich User per Code anlegen? 
Autor: Snoopy
Datum: 16.06.05 20:28

Hallo Larsen,

yepp, das geht - ist aber ein wenig Aufwendig. Aber mit dem Query Analyzer kannst Du
das machen. Du mußt dazu drei Stored Prozedures ausführen:

1. sp_addlogin
2. sp_grantdbaccess
3. sp_addrolemember

Zu 1: Damit legst Du erstmal einen neuen User auf dem Server an
exec sp_addlogin 'Username', 'Passwort', '[DefDataBase]'
DefaultDataBase kannst Du auch weglassen. Dann wird die Standard DB (master)
genommen.


Zu 2: Damit weist Du den neuen User eine Datenbank zu, an die er sich Connecten darf.
exec sp_grantdbaccess 'BenutzerName', 'UserLoginName'
i.d.R. ist der Benutzername und der Userloginname der selbe. Beachte auch bitte, dass
Du zu diesem Zeitpunkt mit der DB, in der der User angelegt werden soll, connected
sein muß. Also im Script noch vorher "USE DataBase" absetzen.


Zu 3: Damit legst du den neuen DBUser in eine Datenbank-Rolle an.
exec sp_addrolemember 'RoleName', 'UserName'
Typischerweise legt man den User in die Rollen "DataReader" und "DataWriter" an.


Mit dieser Vorgehensweise legst du einen User mit SQL-Authentifizerung an.


Wenn Du den LoginUser direkt in eine Serverrolle, bsw. in die SysAdmin Rolle anlegst,
dann kannst du Dir die Punkt 2 und 3 sparen. Und das geht dann so:

Erst Schritt eins ausführen und dann:
exec sp_addsrvrolemember 'LoginName', 'ServerRolle'
Für ServerRolle nimmst Du dann "sysadmin"

Das war´s dann

Einen interessanten Link zum Thema Stored Procedures findes du hier:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sp_00_519s.asp


Du kannst das übrigens auch per VB (ADO) anlegen. Dafür brauchst du dann entweder
ein ADODB.Command Object oder aber Du führst das mit deinem Connection Object
mit der Execute Methode aus.

@CyberDreams
Wie Du siehst, ist es mal nicht so eben getan, den User in irgendwelchen Tabellen
anzulegen. Das geht - ja, aber dazu mußt du genauestens über die internas des
SQL-Server bescheid wissen. Welchen Sinn würden dann die ausgefeilten Sicherheitsmechanismen
des Servers machen

Gruß

Gru?
---------------------------------------------------
Snoopy sagt - vb@rchiv find ich gut...
Schon gesehen? OSMMapViewer V2 Control

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Server: Wie kann ich User per Code anlegen? 
Autor: CyberDreams
Datum: 16.06.05 21:51

Ich hatte Usermäßig leicht was anderes im Kopf Sorry für diese Missverständnis.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Server: Wie kann ich User per Code anlegen? 
Autor: Larsen
Datum: 17.06.05 09:25



Perfekt! Die Antwort würde ich so unverändert in die FAQ eintragen (falls noch tausend andere die gleiche Frage stellen )


Vielen Dank!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel