Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MS-SQL-Server und SELECT (https://www.delphipraxis.net/110967-ms-sql-server-und-select.html)

Jens Schumann 27. Mär 2008 12:51

Datenbank: MS-SQL-Server 2000 • Zugriff über: Native ADO

MS-SQL-Server und SELECT
 
Hallo,
ich habe mit dem Adminuser admin1 eine Tabelle (tabel1) angelegt.
Jetzt habe ich einen User (abc Mitglied in db_datareader) angelegt.
Der Besitzer der Tabelle ist admin1.

Wenn ich mich mit dem User abc anmelde muss ich bei einem SELECT auf
die Tabelle table1 die Besitzernamen mit angeben.

SQL-Code:
SELECT * FOM admin1.tabel1
Gibt es auch eine Möglichkeit ohne admin1. auf die Tabelle mit User abc zu zugreifen?

DeddyH 27. Mär 2008 13:01

Re: MS-SQL-Server und SELECT
 
Mach doch den User zum Table-Owner.

Jens Schumann 27. Mär 2008 13:07

Re: MS-SQL-Server und SELECT
 
Zitat:

Zitat von DeddyH
Mach doch den User zum Table-Owner.

Mmmh - ich bin MS-SQL-Server Neuling. Wie macht man das?
Ist sichergestellt, dass der User weiterhin nur lesen kann?

NormanNG 27. Mär 2008 13:29

Re: MS-SQL-Server und SELECT
 
Hi,

besser ist es sicher, die Tabelle als DBO zu erstellen:

SQL-Code:
create table dbo.beispiel ( ...
DBO-Objekte können von allen Usern ohne Prefix selektiert werden (obwohl ein "select * from dbo.tabelle" performanter ist).

[edit]
Um den weiteren Zugriff zu regeln, kann man mit
SQL-Code:
deny insert, update, delete on dbo.beispiel to public
grant select on dbo.beispiel to public
die Rechte für die Gruppe "Jeder" einschränken.
[/edit]

Jens Schumann 28. Mär 2008 07:02

Re: MS-SQL-Server und SELECT
 
Hallo,
und wie sieht es aus, wenn ich keinen Einfluss darauf habe wer die Tabellen erstellt?

NormanNG 28. Mär 2008 07:08

Re: MS-SQL-Server und SELECT
 
Hi,

Zitat:

und wie sieht es aus, wenn ich keinen Einfluss darauf habe wer die Tabellen erstellt?
aber du schreibst doch
Zitat:

...ich habe mit dem Adminuser admin1 eine Tabelle (tabel1) angelegt...
:gruebel:

Egal, mit welchem User man am SQL-Server angemeldet ist, kann man mit

SQL-Code:
create table dbo.beispiel ( ...
eine Tabelle erzeugen, die "dem dbo gehört", und auf die alle ohne Qualifier zugreifen können.

Oder ich verstehe dein Problem noch nicht richtig?

Jens Schumann 28. Mär 2008 08:41

Re: MS-SQL-Server und SELECT
 
Hallo,
das war wohl ein Mißverständnis. Ich habe admin1 geschrieben, weil alle Tabellen
zwingend mit diesem User angelegt werden müssen. Darauf habe ich keinen Einfluß.

Wir haben Hyperion (heute Qracel) Planning im Einsatz.
Das Planning besteht aus 2 Teilen einem OLAP Teil und einem
relationalen Respository (MS-SQL-Server). Beim Aufsetzen der
Planning Applikation muss u.a. ein Benutzer für den MS-SQL-Server
angegeben werden. Mit diesem Benutzer werden dann im Hintergrund
die Tabelle angelegt.

Ich möchte jetzt mit einem User, der nur Lesen darf diese Tabelle
auslesen.

NormanNG 29. Mär 2008 08:27

Re: MS-SQL-Server und SELECT
 
Hi,

wenn die Tabellen selbst nicht beeinflusst werden dürfen, kannst
du auch eine View erstellen, die den Tabellenowner qualifiziert,
selbst aber dem dbo gehört und damit ohne Besitzer-Angabe aufgerufen werden kann:
SQL-Code:
create view dbo.v_tabel1 ( spalte1, spalte2, ... )
as
select spalte1, spalte2, ...
  from admin1.tabel1
[edit]verschreibser[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 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