| |
VB & DatenbankenSQL 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 | |
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,....) | |
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. | |
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 .....) | |
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. | |
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.... | |
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? | |
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 | |
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. | |
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! | |
| 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 |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevZIP40 Pro DLL
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere Infos
|