Avatar billede kev. Nybegynder
26. april 2010 - 22:34 Der er 1 løsning

PostgreSQL og rettigheder

Hej eksperter,

Jeg roder lidt rundt med et system, der kører på openSUSE og PostgreSQL, og idéen/målet er at lave en status-side for systemet, hvor jeg trækker lidt statistiske oplysninger ud.

Jeg har været igennem hele standardproceduren med PostgreSQL, såsom:

Tillade remote access til PostgreSQL ved i postgresql.conf at rette listen_addresses="*" og i pg_hba.conf at tilføje:
host    all    all    0.0.0.0/0    trust

Ja, ved jeg godt at ovenstående er en sikkerhedsrisiko, mens dels står serveren på et internt netværk, som der ikke er adgang til udefra, og dels skal jeg bare have det her til at virke.

Jeg har oprettet en ny bruger til at tilgå databasen ved først at tilgå som "postgres" brugeren:

psql DATABASENAVN -U postgres

Og oprettet en bruger:

CREATE ROLE statbruger PASSWORD 'statbruger' LOGIN;

Og derefter give brugeren adgang til en tabel i databasen:

GRANT select ON tblstatistik TO statbruger;

På en særskilt computer kørende Windows og IIS (og asp) kan jeg sagtens tilføje en connection-fil til min asp-baserede statusside:

Dim objConnPostgreSQL, strConnectionPostgreSQL

strConnectionPostgreSQL = "Provider=PostgreSQL OLE DB Provider;Data Source=10.3.2.1;location=databasenavn;User ID=statbruger;password=statbruger;"

Set objConnPostgreSQL = Server.CreateObject("ADODB.Connection")
objConnPostgreSQL.Open strConnectionPostgreSQL

Og dette kommer der ingen fejlmeddelelser på, så forbindelsen til databasen virker åbenbart fint.

Men så snart jeg forsøger at udtrække nogle oplysninger, såsom:

SELECT dato, antal, information FROM tblstatistik ORDER BY dato DESC;

Så får jeg en fejlmeddelelse (på tysk, da det åbenbart er en tysk udgave af PostgreSQL og/eller systemet, som er kørende), der siger noget i retning af, at brugeren ikke har rettigheder til at se tabellen/data/etc.

Tilgår jeg databasen med min nye bruger:

psql DATABASENAVN -U statbruger

Og f.eks. forsøger at udtrække:

SELECT * FROM enandentabel;

Kommer den ganske rigtig med en "jeg har ikke rettigheder"-fejlmeddelelse, men udtrækker jeg fra den tabel, som jeg har givet SELECT rettigheder til:

SELECT * FROM tblstatistik;

Så kan jeg sagtens se oplysningerne (altså når jeg sidder på Linux-computeren og arbejder direkte i databasen), men jeg får stadig en "jeg har ikke rettigheder"-fejlmeddelelse på selvsamme tabel, hvis jeg forsøger at tilgå den fra en anden/remote computer.

Er der nogen, der har nogen som helst idé om, hvad der er jeg har glemt? For jeg kan ikke finde noget brugbart på nettet (alt hvad jeg finder på nettet, refererer stadig kun til "listen_addesses" og "pg_hba.conf" og de to ting har jeg været igennem - inkl. at genstarte computeren bagefter).

// Kevin
Avatar billede kev. Nybegynder
18. august 2010 - 13:22 #1
Lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester