[ORACLE] meerdere users, zelfde db

Pagina: 1
Acties:

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
ik ben al een tijdje bezig met oracle, maar nu zou ik eens willen beginnen met het aanmaken van verschillende users, die toegang kunnen krijgen tot een db.

laten we de standaard oracle db als voorbeeld nemen.

Stel, ik wil een user aanmaken met dezelfde rechten als scott..
nu, alles lukt tot hiertoe heel goed..
ik kan zelfs inloggen met de nieuwe usernaam,
maar als ik gegevens wil opvragen met SQL-commando's krijgen ik volgende fout:
code:
1
Tabel of view bestaat niet.

Volgens mij is dit omdat de nieuwe user niet aan de DB gekoppeld is, maar we kunnen er wel al mee inloggen.

Hoe krijg ik het voor elkaar om gegevens uit een bepaalde DB op te vragen, a.d.h van deze nieuwe user(s) ? :S

Verwijderd

je moet de users even toegang geven tot de tabel, dit doe je met "grant"

Je zal zelf even moeten kijken hoe dit commando werkt, zo'n Oracle held ben ik ook weer niet ;)

  • wezep
  • Registratie: Oktober 2000
  • Laatst online: 12-06 21:15
Daarnaast zijn tabellen gemaakt in een schema, bijv. de tabel test van scott: scott.test

Voor een andere user werkt: select * from test niet, maar wel select * from scott.test
De rechten voor die tabel moet je natuurlijk met grant wel geven.

  • watzie
  • Registratie: Juni 2001
  • Laatst online: 07-07 16:26
Ik weet niet precies hoe het bij Oracle zit maar over het algemeen is het niet gebruikelijk om veel users aan te maken. Users zijn over het algemeen vergelijkbaar met een groep waarbij een user bepaalde rechten over bepaalde databases heeft. Als je een nieuw iemand gebruik wilt laten maken van een database creeer je daarvoor een login. Een login is een naam + password dat naar een user mapt. Een user is niet hetzelfde als een login. De loginuser krijgt dus exact dezelfde rechten als de user waarnaar hij gemapt is en is nog steeds uniek identificeerbaar maar je hoeft hem geen grants enzo meer te geven...
Je maakt dus een [databasenaam]leesgebruiker, leesenschrijfgebruiker, dbogebruiker etc. aan voor een database en gaat daar dan logins aan koppelen voor iedereen die er meer werkt.
Nou maar hopen dat je zoiets in Oracle ook hebt :)

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Als je toch je programmatuur algemeen wilt maken met normale tabelnamen (dus zonder de user ervoor), dan alias de user.tabelnaam met CREATE SYNONYM (dacht ik)

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 22:11

TheDane

1.618

om niet iedere keer zoiets als
code:
1
select * from scott.test

in te hoeven typen kun je ook
code:
1
create public synonym

eens bekijken.

[edit] goodielover was me voor :)


overigens maken wij van 3 oracle users gebruik:

• internal (internal oracle user om bijv database errors te verhelpen) (default user)
• system/sys (soort van administrator) (ook default)
• regular (reguliere user. de lees/schrijfrechten worden in de applicatiecode geregeld)

ik zie het nut van meer oracle users eigenlijk niet zo

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Over het algemeen maak je voor iedereen wel een aparte user aan. Met een normaal grant en synonym script is dat ook zo gepiept.
Als je de DB wil laten loggen of uitgebreide autorisatie wil laten uitvoeren is dat ook nodig.
Op vrijdag 26 april 2002 16:02 schreef watzie het volgende:
Ik weet niet precies hoe het bij Oracle zit maar over het algemeen is het niet gebruikelijk om veel users aan te maken. Users zijn over het algemeen vergelijkbaar met een groep waarbij een user bepaalde rechten over bepaalde databases heeft. Als je een nieuw iemand gebruik wilt laten maken van een database creeer je daarvoor een login. Een login is een naam + password dat naar een user mapt. Een user is niet hetzelfde als een login. De loginuser krijgt dus exact dezelfde rechten als de user waarnaar hij gemapt is en is nog steeds uniek identificeerbaar maar je hoeft hem geen grants enzo meer te geven...
Je maakt dus een [databasenaam]leesgebruiker, leesenschrijfgebruiker, dbogebruiker etc. aan voor een database en gaat daar dan logins aan koppelen voor iedereen die er meer werkt.
Nou maar hopen dat je zoiets in Oracle ook hebt :)

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 22:11

TheDane

1.618

Op vrijdag 26 april 2002 16:11 schreef Goodielover het volgende:
Over het algemeen maak je voor iedereen wel een aparte user aan. Met een normaal grant en synonym script is dat ook zo gepiept.
Als je de DB wil laten loggen of uitgebreide autorisatie wil laten uitvoeren is dat ook nodig.
[..]
nou, onze communities hebben een totaal van dik 500.000 leden. dan zouden we dus ook 500.000 oracle users hebben. lijkt me niet bepaald efficient, als die allemaal ook nog eens hun eigen scheme hebben.

kan me bij nader inzien wel voorstellen dat
• regular users
• analisten
• develop users

als aparte oracle users beschouwd worden

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Bij internet applicaties wordt het lastig, maar bij een financiel pakket heeft echt iedereen een eigen account hoor.
Op vrijdag 26 april 2002 16:16 schreef TheDane het volgende:

[..]

nou, onze communities hebben een totaal van dik 500.000 leden. dan zouden we dus ook 500.000 oracle users hebben. lijkt me niet bepaald efficient, als die allemaal ook nog eens hun eigen scheme hebben.

kan me bij nader inzien wel voorstellen dat
• regular users
• analisten
• develop users

als aparte oracle users beschouwd worden

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 22:11

TheDane

1.618

Op vrijdag 26 april 2002 16:17 schreef Goodielover het volgende:
Bij internet applicaties wordt het lastig, maar bij een financiel pakket heeft echt iedereen een eigen account hoor.
[..]
hmm, ja, da's waarschijnlijk wel zo inderdaad |:(

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op vrijdag 26 april 2002 16:19 schreef TheDane het volgende:

[..]

hmm, ja, da's waarschijnlijk wel zo inderdaad |:(
Pas je wel op voor je hoofd. Doet 't geen pijn zo tegen de muur?
Je kan ook een view op een tabel gebruiken voor horizontale afscherming en dan een synonym creeren met de oorspronkelijk tabelnaam zal werkt al je programmatuur ook nog.

Verwijderd

Ligt er dus maar net aan waar je de DB voor gebruikt. Ik ken zat applicaties waarin elke user een database-user is/heeft. Is ook wel zo fijn als je bijvoorbeeld weer user-statistieken uit de database wilt peuteren.

Zo zijn er applicaties waar verschillende groepen users verschillende rechten hebben op de database, hier kun je roles voor gebruiken. Iemand bij (ik noem maar wat) een callcenter mag alleen maar naar de voorraden kijken, terwijl een magazijnmedewerker de voorraad mag muteren (er wordt iets geleverd), maar alleen maar van zijn eigen afdeling bijvoorbeeld.

Dit kun je dus schitterend met rechten en rollen doen.

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 22:11

TheDane

1.618

Op vrijdag 26 april 2002 16:22 schreef Goodielover het volgende:

[..]

Pas je wel op voor je hoofd. Doet 't geen pijn zo tegen de muur?
Je kan ook een view op een tabel gebruiken voor horizontale afscherming en dan een synonym creeren met de oorspronkelijk tabelnaam zal werkt al je programmatuur ook nog.
:) ja, da's wel zo .. maar ik zit dus 100% in de internetbranche, en dan is tigduizend users gewoon geen oplossing. verder niet over 't nut van meerdere users , zoals bij fin. systemen, nagedacht :)
Pagina: 1