Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   MSSQL Datnebank und User im Setup konfigurieren (https://www.delphipraxis.net/166422-mssql-datnebank-und-user-im-setup-konfigurieren.html)

QuickAndDirty 13. Feb 2012 10:09

Datenbank: MSSQL • Version: >=2005 • Zugriff über: AnyDac

MSSQL Datnebank und User im Setup konfigurieren
 
Hallo,
ich habe für unsere Software ein Settup geschrieben das für eine Installation mit Firebird(mitgeliefert) auch keinen Admin oder Denkenden User braucht.

Die Installation auf MSSQL(SQLExpess)erfordert im Moment noch das man im
"SQL Server Management Studio (Express)" einiges machen muss:
a)unter Datenbanken eine Datenbank anlegen.
b)unter Sicherheit/Anmeldungen eine "Anmeldung"(Login) anlegen
c)in den Eigenschaften der Anmeldung unter Allgemein die Kennwortrichtlinien deaktivieren
d)in den Eigenschaften der Anmeldung unter Allgemein die Standarddatenbank festlegen
e)in den Eigenschaften der Anmeldung unter Allgemein die StandardSprache auf German setzen
f)in den Eigenschaften der Anmeldung unter Benutzerzuordnung für die Standarddatenbank die Rollenmitgliedschaft "db_owner" und "public" anhaken

Fertig

Das alles soll das Setup jetzt alleine machen.
Ich habe schon herausgefunden das die Punkte a) bis e)
vermutlich durch absetzen folgender SQLS unter SA Login erledigt ist
Code:
CREATE DATABASE mydatabase;

CREATE LOGIN myuser WITH PASSWORD='mypassword'
,DEFAULT_DATABASE = mydatabase
,DEFAULT_LANGUAGE = German
,CHECK_EXPIRATION = OFF
,CHECK_POLICY = OFF;
Ist das korrekt?
Und wie bekomme ich Punkt f) hin?

DeddyH 13. Feb 2012 10:25

AW: MSSQL Datnebank und User im Setup konfigurieren
 
Hilft Dir das weiter? Adding a Member to a SQL Server Database Role

QuickAndDirty 13. Feb 2012 10:36

AW: MSSQL Datnebank und User im Setup konfigurieren
 
Vielleicht,
aber das ist irgendwie nicht datenbankspezifisch.
Und ich brauche ihn nur für die ihm zugeordnete Datenbank in den entsprechenden Rollen.

Außerdem weiß ich nicht wie ich sp_addrolemember in anydac aufrufe oder absetze...leider.

jobo 13. Feb 2012 10:36

AW: MSSQL Datnebank und User im Setup konfigurieren
 
Ich hab nicht so viel Ahnung von MSSQL, also folgende Denkanstöße:
1. dient das Programm lediglich der einmaligen Erzeugung der DB oder benutzt das jeder User?
2. m.E. ist ein Erzeuger einer DB automatisch Owner

zu f)
Ein Owner braucht also die Rechte nicht erneut zugewiesen bekommen. Weitere Member(anderer User) sollte diese Rolle niemals erhalten, sicherheitshalber.

hier noch ein Link
http://msdn.microsoft.com/de-de/libr...sql.90%29.aspx

jobo 13. Feb 2012 10:37

AW: MSSQL Datnebank und User im Setup konfigurieren
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1150736)
Außerdem weiß ich nicht wie ich sp_addrolemember in anydac aufrufe oder absetze...leider.

Einfach eine Query nehmen und diese SP aufrufen?

QuickAndDirty 13. Feb 2012 11:28

AW: MSSQL Datnebank und User im Setup konfigurieren
 
Zitat:

Zitat von jobo (Beitrag 1150738)
Ich hab nicht so viel Ahnung von MSSQL, also folgende Denkanstöße:
1. dient das Programm lediglich der einmaligen Erzeugung der DB oder benutzt das jeder User?
2. m.E. ist ein Erzeuger einer DB automatisch Owner

zu f)
Ein Owner braucht also die Rechte nicht erneut zugewiesen bekommen. Weitere Member(anderer User) sollte diese Rolle niemals erhalten, sicherheitshalber.

hier noch ein Link
http://msdn.microsoft.com/de-de/libr...sql.90%29.aspx

Ich erzeuge Datenbank und LOGIN mit dem SA.
Ich MUSS ihm db_owner rolle für diese Datenbank zuweisen...zumindest wenn ich es händisch mache.

Wie macht ihr, denn eure Setups für MSSQL wenn die Datenbank noch nicht vorhanden ist?

jobo 13. Feb 2012 11:30

AW: MSSQL Datnebank und User im Setup konfigurieren
 
Ok, also dann vielleicht eher sorum:
Login SA: create user myuser grant create database..
Login myUser: create database mydatabase ...

QuickAndDirty 13. Feb 2012 11:50

AW: MSSQL Datnebank und User im Setup konfigurieren
 
Zitat:

Zitat von jobo (Beitrag 1150757)
Ok, also dann vielleicht eher sorum:
Login SA: create user myuser grant create database..
Login myUser: create database mydatabase ...

Das hört sich gut an. Wenn das geht.

Ich habe dennoch ein Problem....wo melde ich mich an?
Server=MEINRECHNER\SQLEXPRESS
Databasename=???
Username=SA
Password=standardpasswort
OSAuth=False


An welcher DB muss sich die Connection anmelden? oder kann ich das leer lassen? (Die anwendung zum ausprobieren ist gerade in bau, falls die Antwort heißt "Probier es aus"...)

EDIT:
Habe es Ausprobiert...
Datenbankname ist "master"

QuickAndDirty 13. Feb 2012 13:05

AW: MSSQL Datnebank und User im Setup konfigurieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Es geht mir darum wie ich in dem angehängten Bild,
in 1.) und 2.) einen haken setze und in 3.) dbo schreibe
Und das alles per Transact SQL .
Wie geht das?

QuickAndDirty 13. Feb 2012 14:07

AW: MSSQL Datnebank und User im Setup konfigurieren
 
Zitat:

Zitat von jobo (Beitrag 1150757)
Ok, also dann vielleicht eher sorum:
Login SA: create user myuser grant create database..
Login myUser: create database mydatabase ...

geht nicht
Code:
create user myuser1 grant create database
geht nicht
Code:
create user myuser1 grant createdatabase
geht nicht
Code:
create user myuser1 grant create_database

jobo 13. Feb 2012 14:21

AW: MSSQL Datnebank und User im Setup konfigurieren
 
Ich bin wie gesagt kein Experte mit MSSQL. Hab hier Express2005.

Als Anhaltspunkt, so irgendwie geht es bei mir:
Code:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle Rechte vorbehalten.


C:\Users\jin7>sqlcmd -S localhost\SQLExpress2005 -Usa
Kennwort:
1> SELECT name from sys.databases
2> Go
name

--------------------------------------------------------------------------------
------------------------------------------------
master

tempdb

model

msdb


(4 Zeilen betroffen)
1>
2>
3>
4>
5> CREATE LOGIN myAppOwner
6>    WITH PASSWORD = '...';
7> CREATE USER myAppOwner FOR LOGIN myAppOwner;
8> GO
1>
2>
3> grant create database to myAppOwner;
4> GO
1>
2> :connect localhost\sqlexpress2005 -U myAppOwner
Kennwort: Sqlcmd: Erfolgreich mit Server 'localhost\sqlexpress2005' verbunden.
1> create database myDatabase;
2> GO
1> SELECT name from sys.databases;
2> GO
name

-------------------------------------------
-------------------------------------------
master

tempdb

model

msdb

myDatabase


(5 Zeilen betroffen)
1>
usw.

Aber wie bei den Lottozahlen gilt hier: ohne Gewähr

QuickAndDirty 13. Feb 2012 14:39

AW: MSSQL Datnebank und User im Setup konfigurieren
 
JUHUUUUUUUUUUUUUUU
ICH HABS

DANKE DEDDYH und DANKE JOBO !!!!!!!!!!!!!!!!

hier wie ich es gemacht habe
Code:
//Login auf mit SA auf master
CREATE DATABASE mydatabase;

//Log out
//Login auf mit SA auf mydatabase

CREATE LOGIN mylogin WITH PASSWORD='mypassword'
,DEFAULT_DATABASE = mydatabase
,DEFAULT_LANGUAGE = German
,CHECK_EXPIRATION = OFF
,CHECK_POLICY = OFF

CREATE USER mylogin FOR LOGIN mylogin

sp_addrolemember 'db_owner','mylogin'
Edit: @Jobo hättest das mal in den 1.ten Post geschrieben hätte ich nicht nach diese Lösung hier zusammengebastelt...

jobo 13. Feb 2012 15:01

AW: MSSQL Datnebank und User im Setup konfigurieren
 
Ich bin mir nicht sicher, ob bei meiner "Lösung" das gleiche rauskommt. Ich mache normalerweise nichts mit SQLExpress.

Aber das müsstest Du ja mit dem Mangement Studio leicht prüfen können.

Und ich musste auch erst sehen was ich mache, damit ich weiß was ich meine.:stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz