Toon posts:

Oracle sql vraagje

Pagina: 1
Acties:
  • 105 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

Ik moet voor school met sql + in oracle met 2 gebruikers dezelfde database aansprken. Ik heb dus de standaard gebruiker wilco, die een bepaalde database heeft.
Dus ik maak netjes create user wilco2 identifed by wuft;
een nieuwe gebruiker aan. Maar nu komt dus de catch, hoe laat ik die gebruiker mijn bestanden benaderen die ik als wilco gebruik.

Ik heb dus als eerste GRANT CREATE SESSION TO wilco2; gedaan
en daarna nog

GRANT ALL on INSCHRIJVING to wilco2 WITH GRANT OPTION;

(inschrijving is dus een tabelnaam). Maar dit was alleen om te testen. Hoe krijg ik hetdus voor elkaar dat ik met mijn 2e gebruiker dus ook de database kan benaderen :)

Bij voorbaat dank.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Euh, volgens mij kom je vrij ver na:
grant connect ...
grant select, insert, update, delete, create table, create index ...

Verwijderd

Topicstarter
grant connect heeft ook niet geholpen.

thnxvoor replyen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Wat voor meldingen geeft oracle je??

Verwijderd

Topicstarter
table does not excist.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Op woensdag 03 oktober 2001 14:50 schreef Nephilium het volgende:
table does not excist.
En je table bestaat neem ik aan wel voor die andere user? :)

Er zijn helaas vreselijk veel Grant options bij oracle. Ik weet niet precies meer welke waarvoor was bedoeld (en ik was lui, deed dat met de StudioDBA ;) )

Verwijderd

Als je met wilco2 het sql statement uitvoert heb noem je dan wel de table: wilco.inschijvingen? Owner van de table moet je er altijd voor zetten.

Verwijderd

Als je met wilco2 het sql statement uitvoert heb noem je dan wel de table: wilco.inschijvingen? Owner van de table moet je er altijd voor zetten.

Verwijderd

een gebruiker moet idd create session hebben om te kunnen connecten met een db.
om een tabel van een andere gebruiker te kunnen benaderen moet je rechten op die tabel van de gebruiker hebben.

heb je allemaal gedaan, dus ben je klaar

je krijgt die foutmelding omdat je de naam van het schema er niet voor tikt

je kunt hiervoor eventueel een synoniem aanmaken (private of public)

zie commentaar sagar

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Op woensdag 03 oktober 2001 14:56 schreef sagar het volgende:
Als je met wilco2 het sql statement uitvoert heb noem je dan wel de table: wilco.inschijvingen? Owner van de table moet je er altijd voor zetten.
Als je in dezelfde userspace zit, maakt dat allemaal niet zoveel uit toch??

Verwijderd

als het object niet van jezelf is moet je verwijzen met de objectowner ervoor (dit kan via een synoniem zodat je het niet merkt).

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 03 oktober 2001 15:06 schreef ACM het volgende:

[..]

Als je in dezelfde userspace zit, maakt dat allemaal niet zoveel uit toch??
Ligt aan de settings van Oracle. het KAN uitmaken.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Ja wel. OOkal heb je twee users in de zelfde userspace/tablespace staan moet je toch owner van table er voor zetten. Wat wel logisch is aangezien je vaak gewoon meerdere users hebt die gebruik maken van de user tablespace en dan zo toch de zelfde table naam kunnen gebruiken (maar toch een andere table).


Je zou voor wilco2 ook evt een view kunnen schrijven voor die table.

Verwijderd

Op woensdag 03 oktober 2001 15:12 schreef sagar het volgende:

Je zou voor wilco2 ook evt een view kunnen schrijven voor die table.
maar dan moet je ook het create view privilege hebben en moet je in je create view statement alsnog de schema naam van de tabel eigenaar opnemen (of een synoniem aanmaken).

wordt er niet makkelijker op voor nephilium.

Voor de goede orde : de gebruikers (schemas) wilco en wilco2 "spelen" in dezelfde instance van de database.
Het zijn dus niet twee databases.
wilco2 probeert in een ander schema (wilco) een tabel te benaderen. Daarvoor heeft ie rechten nodig (grant).

Gebruikers staan niet in een tablespace maar de objecten (de definitie en de inhoud/data staan in 1 of meerdere tablespaces).

Een objectnaam kan inderdaad voorkomen in meerdere schema's.
Als je een object wilt benaderen in een ander schema geef je dit aan door de schema naam ervoor te zetten.
Oracle zoekt eerst in je eigen schema naar een object met de opgegeven naam, daarna naar private synoyms met die naam en daarna nog naar public synonyms met die naam.

Verwijderd

Topicstarter
het wordt nu nog even wat vager.
Ik heb nu een reinstall gedaan van oracle omdat wat anders niet lekker werkte.

als ik nu user wilco heb aangemaakt. en wil ik weer een database genereren. lukt het niet.

ERROR at line 17:
ORA-01950: no privileges on tablespace 'SYSTEM'

volgens mij moet ik hierook iets met rechten doen. maar als ik grant all on system to wilco with grant option doe.
dan werkt dat ook niet.

.

die reply;s hier voor hebben wel geholpen. bv als ik de default users gebruik ik oracle werkt dat allemaal wel. maar ik wil liever met mijn eigen users werken.

tot zover dank.

Verwijderd

volgens mij heb je geen idee waar je mee bezig bent
wat wil je nu doen?

Verwijderd

Topicstarter
Ik heb alles erafgepleurd dus ik heb de gebruikers opnieuw aangemaakt.

create user blablabla
grant connect to
grant session create to.
grant create table to...
zover zogoed.

dan log ik in als wilco en wil ik het scriptje runnen van school om dus alles te generen, maar dat lukt dan neit en geeft ie allerlei foutmeldingen.
zoals deze

ORA-01950: no privileges on tablespace 'SYSTEM'

Ik ben niet echt een oracle expert dus tja. ik weet niet zo goed hoe het werkt. Maar ik heeft het wel nodig. en het boekje wat ikerbij heb helpt ook niet echt. Dat gaatervan uit dat alles alwerkt.

Verwijderd

Op woensdag 03 oktober 2001 16:30 schreef Nephilium het volgende:
Ik heb alles erafgepleurd dus ik heb de gebruikers opnieuw aangemaakt.

create user blablabla
grant connect to
grant session create to.
grant create table to...
zover zogoed.

dan log ik in als wilco en wil ik het scriptje runnen van school om dus alles te generen, maar dat lukt dan neit en geeft ie allerlei foutmeldingen.
zoals deze

ORA-01950: no privileges on tablespace 'SYSTEM'

Ik ben niet echt een oracle expert dus tja. ik weet niet zo goed hoe het werkt. Maar ik heeft het wel nodig. en het boekje wat ikerbij heb helpt ook niet echt. Dat gaatervan uit dat alles alwerkt.
- create session zit al in connect (never mind)

je hebt een gebruiker aangemaakt. deze krijgt als default tablespace system. (Niet doen, gebruik user of zo; zie create user in doc)

daar ontstaat je fout. Je hebt geen rechten om een object te creeeren in tablespace SYSTEM.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 03 oktober 2001 16:34 schreef sjako het volgende:
daar ontstaat je fout. Je hebt geen rechten om een object te creeeren in tablespace SYSTEM.
Dat wilt men ook niet :+ (helaas weten dat zo verdomd weinig mensen ;) )

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
alter user wilco QUOTA 20M on system;

dit heeft wel geholpen.

ik probeer ook maar wat ;)

Volgens mij kan ik nu zo wel verder werken.

Verwijderd

;)

melding wordt veroorzaakt doordat je geen ruimte toegewezen hebt gekregen in tablespace system :


bijvoorbeeld :
code:
1
alter user x quota 5m on system;

edit:

hmmm, je weet het dus wel ;)

  • QyRoZ
  • Registratie: November 2000
  • Laatst online: 21-08 08:17

QyRoZ

Just Q it!

Op woensdag 03 oktober 2001 16:41 schreef Nephilium het volgende:
alter user wilco QUOTA 20M on system;

dit heeft wel geholpen.

ik probeer ook maar wat ;)
Nee, dat heb IK voor je uitgezocht! Lamer!

Verwijderd

Topicstarter
Op woensdag 03 oktober 2001 17:13 schreef QyRoZ het volgende:

[..]

Nee, dat heb IK voor je uitgezocht! Lamer!
ow doh. gaat erom dat ze niet meer hoeven te reageren :)

Verwijderd

wat ik mis is dat als je als de tweede gebruiker een tabel van gebruik1 wilt querien, je natuurlijk wel zijn schema moet megeven (als je geen synonymen hebt uitgedeeld):

connect user2/pass2@database
select * from user1.tablename;

Verwijderd

Op woensdag 03 oktober 2001 18:53 schreef router.inet het volgende:
wat ik mis is dat als je als de tweede gebruiker een tabel van gebruik1 wilt querien, je natuurlijk wel zijn schema moet megeven (als je geen synonymen hebt uitgedeeld):

connect user2/pass2@database
select * from user1.tablename;
Tsja dat hebben we em al proberen uit te leggen, maar volgens mij wil ie dat niet lezen ofzo |:(

Nephilium: Mischien beter als je eerst eens ene manual ofzo gata lezen. En anders is access misschien wat voor je!

Verwijderd

Topicstarter
Op woensdag 03 oktober 2001 19:19 schreef sagar het volgende:

[..]

Tsja dat hebben we em al proberen uit te leggen, maar volgens mij wil ie dat niet lezen ofzo |:(

Nephilium: Mischien beter als je eerst eens ene manual ofzo gata lezen. En anders is access misschien wat voor je!
als je gelezen had, had je gezien dat ik er al uit was :)

en access was geen optie, wnat dit klote pakket gebruiken we op school ook.
Pagina: 1