Bazy 2 id 81307 Nieznany (2)

background image

Tworzenie baz i użytkowników.

Mając   już   za   sobą   żmudny   proces   analizy   wymagań   stawianych   bazie   danych   i 

stworzenia jej projektu, mo e

ż my zająć się fizycznym tworzeniem naszej bazy.   Aby 

rozpocząć pracę konieczne jest posiadanie konta użytkownika serwera PostgreSQL 

oraz dostępu do bazy danych. Przeważnie jest to do uzyskania dzięki kontaktowi z 

administratorem   serwera.   Jednakże   jeśli   mamy   stosowne   uprawnienia,   lub   sami 

jesteśmy   administratorem,   warto   znać   sposoby   tworzenia   użytkowników   i   baz 

danych. 

Zacznijmy od tworzenia użytkowników.
Użytkowników   mogą   tworzyć   tylko   użytkownicy     posiadający   prawo   tworzenia 

użytkowników ( super­użytkownicy). Są dwa sposoby zakładania kont użytkowników 

serwera   PostgreSQL.   Pierwszy   to   polecenie   zewnętrzne  

createuser

,   drugi   to 

polecenie  

CREATE USER

  dostępne po zalogowaniu do serwera (np. przy użyciu 

programu 

psql

). 

Składnia polecenia 

createuser

 jest następująca:

createuser [opcje...] [nazwa_uzytkownika]

Gdzie:

nazwa_uzytkownika

– to nazwa uzytkownika do utworzenia.

Opcje mog by nast puj ce:

ą

ć

ę

ą

-a, --adduser

- nowy u ytkownik b dzie uprawniony do

ż

ę

tworzenia nowych u ytkowników. Jest to równowa ne z nadaniem

ż

ż

uprawnie super-u ytkownika ( zatem nale y nadawa je z rozwag )

ń

ż

ż

ć

ą

-A, --no-adduser

- nowy

 użytkownik nie będzie mógł tworzyć 

użytkowników. Będzie zatem zwykłym użytkownikiem. Ta opcja jest 

domyślna.

-d, --cratedb

  ­ nowy użytkownik będzie mógł tworzyć bazy.

-D, -no-created

b   ­ nowy użytkownik nie będzie mógł tworzyć 

baz. Ta opcja jest domyślna.

-P, --pwpromp

t     ­   wygeneruje   zapytanie   o   hasło   dla   nowego 

użytkownika.

1

background image

Program zapyta o nazwę użytkownika i inne brakujące parametry, jeśli 

nie zostaną podane z linii  poleceń.
Istnieją też opcje dotyczące połączenia z serwerem:

-h, --host

- to nazwa maszyny na której jest uruchomiony serwer.

-p, --port

– okre la port po czenia TCP, na którym serwer

ś

łą

oczekuje po cze .

łą

ń

-U, --username

– nazwa u ytkownika do po czenia z baz (nie

ż

łą

ą

nazwa u ytkownika do utworzenia).

ż

Przed przej ciem do przyk adów, warto jeszcze raz wspomnie o tym, e tylko

ś

ł

ć

ż

super-u ytkownicy mog zak ada konta nowym u ytkownikom. Istotna jest tak e

ż

ą

ł

ć

ż

ż

informacja i domy ln metod autoryzacji u ytkowników jest metoda

ż

ś ą

ą

ż

IDENT

,

polegaj ca na dopuszczeniu tylko po czenia u ytkowników o takiej samej nazwie

ą

łą

ż

jak u ytkownik wykonuj cy po czenie. Na przyk ad u ytkownik systemu o nazwie

ż

ą

łą

ł

ż

student

mo e po czy si z baz danych tylko jako u ytkownik serwera

ż

łą

ć

ę

ą

ż

PostgreSQL o identycznej nazwie czyli:

student

. Wi cej o metodach

ę

uwierzytelniania w rozdziale “ Administrowanie serwerem PostgreSQL”.

Przyk ady:

ł

Maj c do czynienia z nowym (pustym) serwerem, dysponujemy tylko jednym super-

ą

u ytkownikiem o nazwie

ż

postgres

. Nale y zatem zmieni bie

cego

ż

ć

żą

u ytkownika na u ytkownika

ż

ż

postgres

poleceniem

su

. ( Prawdopodobnie

b dziemy musieli dokona tego korzystaj c z konta

ę

ć

ą

root

)

$ su postgres

Zacznijmy wi c od najprostszej postaci polecenia.

ę

$ createuser

Enter name of user to add: administrator

Shall the new user be allowed to create databases? (y/n)

y

Shall the new user be allowed to create more new users?

(y/n) y

CREATE USER

2

background image

Po wydaniu polecenia, program zapyta nas o nazw u ytkownika do utworzenia, w

ę ż

przyk adzie by to

ł

ł

administrator

. Nast pnie musimy zadecydowa czy nowy

ę

ć

u ytkownik ma posiada prawo tworzenia baz oraz u ytkowników, w powy szym

ż

ć

ż

ż

przyk adzie zosta a wyra ona zgoda na obydwa uprawnienia. Utworzenie nowego

ł

ł

ż

u ytkownika sygnalizowane jest przez napis

ż

CREATE USER

.

Spróbujmy ograniczy teraz ilo

pyta stawianych przez program

ć

ść

ń

createuser

.

Na pocz tek podajmy nazw u ytkownika.

ą

ę ż

$ createuser administrator

Program zada nam pytania dotycz ce mo liwo ci tworzenia baz i u ytkowników

ą

ż

ś

ż

przez nowego u ytkownika.

ż

Mo emy tak e zadecydowa o mo liwo ciach tworzenia baz danych ju na etapie

ż

ż

ć

ż

ś

ż

wydawania polecenia, opcja

-d

je li wyra amy zgod na to uprawnienie lub

ś

ż

ę

-D

je li si nie zgadzamy.

ś

ę

$createuser administrator -d

Zostaniemy zapytani tylko o mo liwo

tworzenia nowych u ytkowników,a

ż

ść

ż

u ytkownik administrator b dzie móg tworzy nowe bazy.

ż

ę

ł

ć

Decyzj o przyznaniu uprawnienia do tworzenia nowych u ytkowników mo emy

ę

ż

ż

podj

przy u yciu opcji

ąć

ż

-a

, je li wyra amy zgod , lub

ś

ż

ę

-A

je li zgody nie

ś

wyra amy.

ż

$ createuser administrator -d -a

Wszystkie decyzje zosta y ju podj te i program nie zada nam adnych

ł

ż

ę

ż

dodatkowych pyta . Natomiast nasz

ń

administrator

b dzie móg tworzy nowe

ę

ł

ć

bazy i u ytkowników.

ż

Dobrym pomys em jest zabezpieczenie konta u ytkownika

ł

ż

administrator

has em

ł

. W tym celu należy dodać parametr 

-P

.

$ createuser administrator -a -d -P

Enter password for new user:

Enter it again:

CREATE USER

Zostaniemy poproszeni o dwukrotne wprowadzenie has a. Mo na ustawi sposób

ł

ż

ć

autoryzacji, tak aby jako administrator móg pracowa dowolny u ytkownik systemu

ł

ć

ż

znaj cy has o ( patrz rozdzia “Administrowanie serwerem PostgreSQL”).

ą

ł

ł

3

background image

Utwórzmy   zatem   konto  

telewizja

  korzystając   z   konta  

administrator

pracując w powłoce jako dowolny użytkownik.

$ createuser telewizja -d -A -U administrator

Password:

CREATE USER

Zosta a u yta opcja

ł

ż

-U

która powoduje wykonanie polecenia jako podany

u ytkownik, w tym przypadku

ż

administrator

. Poniewa konto administrator

ż

zosta o zabezpieczone has em, zostali my poproszeni o jego podanie. Utworzony

ł

ł

ś

u ytkownik telewizja mo e tworzy bazy i nie mo e tworzy u ytkowników.

ż

ż

ć

ż

ć ż

Drugim sposobem tworzenia u ytkowników jest wykonanie polecenia

ż

CREATE

USER

po zalogowaniu do serwera PostgreSQL. Za ó my, e tak jak poprzednio

ł ż

ż

dysponujemy nowym serwerem, w którym jedynym super-u ytkownikiem jest

ż

postgres

. Zatem zmieniamy u ytkownika na

ż

postgres

,

$ su postgres

nast pnie

czymy si z baz

ę

łą

ę

ą

template1

( tworzona domy lnie) przy pomocy

ś

programu psql.

$ psql -d template1

Opis programu psql znajduje si w innym rozdziale.

ę

Sk adnia polecenia

ł

CREATE USER

( j zyk SQL nie jest czu y na wielko

liter,

ę

ł

ść

polecenia SQL piszemy du ymi literami zgodnie z panuj c konwencj ):

ż

ą ą

ą

CREATE USER nazwa [ [ WITH ] opcje [ . . . ] ]

Gdzie :

nazwa

– to nazwa u ytkownika do utworzenia, jak wida jest

ż

ć

konieczna..

Opcje mog by nast puj ce:

ą

ć

ę

ą

CREATEDB

– u ytkownik mo e tworzy bazy,

ż

ż

ć

NOCREATEDB

– u ytkownik nie mo e tworzy baz,

ż

ż

ć

CREATEUSER

– u ytkownik mo e tworzy u ytkowników,

ż

ż

ć ż

NOCREATEUSER

– u ytkownik nie mo e tworzy u ytkowników,

ż

ż

ć ż

PASSWORD 'haslo'

– ustalenie has a dla u ytkownika,

ł

ż

IN GROUP nazwa_grupy [ , . . . ]

- do czenie

łą

u ytkownika do grupy lub grup ( informacje o grupach w rozdziale

ż

“Administrowanie serwerem PostgreSQL”).

SYSID numer

– nadanie u ytkownikowi okre lonego numeru

ż

ś

u ytkownika.

ż

VALID UNTIL 'data'

– okre lenie daty wa no ci konta.

ś

ż ś

4

background image

Przy podaniu samej nazwy u ytkownika, np.:

ż

=# CREATE USER pracownik;

przyjmowane s jako domy lne brak mo liwo ci tworzenia baz i u ytkowników,

ą

ś

ż

ś

ż

oraz automatycznie nadawany jest numer u ytkownika. Przypomnijmy o

ż

konieczno ci ko czenia polece

znakiem rednika. Aby wy wietli list

ś

ń

ń

ś

ś

ć

ę

u ytkowników u ywamy polecenia

ż

ż

\du,

jest to polecenie wewn trzne programu

ę

psql

.

=# \du

List of database users

User name | User ID | Attributes

---------------+---------+----------------------------

administrator | 101 | superuser, create database

postgres | 1 | superuser, create database

pracownik | 103 |

telewizja | 102 | create databas

e

Przyk ady:

ł

Najprostsz wersj polecenia mamy ju za sob . Stwórzmy u ytkownika który

ą

ę

ż

ą

ż

b dzie móg tworzy bazy.

ę

ł

ć

=# CREATE USER uzytkownik_1 WITH CREATEDB;

Je li zechcemy aby u ytkownik móg dodatkowo tworzy innych u ytkowników, to

ś

ż

ł

ć

ż

dok adamy

ł

CREATEUSER

=# CREATE USER uzytkownik_2 WITH CREATEDB CREATEUSER;

Za ó my teraz konto u ytkownika wa ne do 01.01.2010

ł ż

ż

ż

=# CREATE USER uzytkownik_3 WITH VALID UNTIL

'01.01.20010';

Stwórzmy u ytkownika nale

cego do grup

ż

żą

projekt

i

administratorzy

5

background image

=# CREATE USER uzytkownik_3 WITH IN GROUP projekt,
administratorzy;

Gdy poznaliśmy już sposoby tworzenia kont użytkowników, poznamy w jaki sposób 

konta   te   można   skasować.   Podobnie   jak   poprzednio   mamy   do   wyboru   dwie 

możliwości.   Pierwsza   to   polecenie   zewnętrzne  

dropuser

  –   przeciwieństwo 

polecenia 

createuser

, o następującej składni:

dropuser [ ocje . . . ] nazwa_uzytkownika

Gdzie 

nazwa_uzytkownika

– to nazwa uzytkownika do usuni cia.

ę

Wa niejsze opcje:

ż

-h, --host

- to nazwa maszyny na której jest uruchomiony serwer.

-p, --port

– okre la port po czenia TCP, na którym serwer

ś

łą

oczekuje po cze .

łą

ń

-U, --username

– nazwa u ytkownika do po czenia z baz (nie

ż

łą

ą

nazwa u ytkownika do usuni cia).

ż

ę

Oczywi cie musimy posiada odpowiednie uprawnienia. Obowi zuj te same

ś

ć

ą

ą

zasady co przy poleceniu

createuser.

Najprostsza wersja polecenia

$ dropuser uzytkownik_4

usunie konto użytkownika o nazwie uzytkownik_4.

Drugim sposobem jest wykonanie polecenia SQL ­  

DROP USER

, oczywiście po 

zalogowaniu się do serwera. Składnia polecenia jest bardzo prosta i nie wymaga 

komentarza:

DROP USER nazwa_uzytkownika;

Przejdźmy teraz do tworzenia baz.

Bazy mo na tworzy na mo na na dwa sposoby ( podobnie jak tworzenie

ż

ć

ż

u ytkowników).

ż

6

background image

Sposób   pierwszy   to   użycie   zewnętrznego   programu   serwera   PostgreSQL   – 

createdb

dost pnego z pow oki. Sk adnia tego polecenia jest nast puj ca:

ę

ł

ł

ę

ą

createdb [opcje ... ] [nazwa] [opis]

Polecenie tworzy now baz o domy lnej nazwie u ytkownika wydaj cego

ą

ę

ś

ż

ą

polecenie b d cej tak e jego w asno ci . Oczywi cie je eli u ytkownik systemu

ę ą

ż

ł

ś ą

ś

ż

ż

istnieje tak e w systemie bazy danych ( a tak by nie musi) i ma uprawnienia do

ż

ć

tworzenia bazy danych ( te nie musi ich posiada ). Za ó my, e w systemie

ż

ć

ł ż

ż

pracujemy jako u ytkownik o nazwie

ż

student

, który jest tak e u ytkownikiem

ż

ż

serwera bazy danych posiadaj cym uprawnienia do tworzenia tabel. Wówczas

ą

wykonanie polecenia

createdb

zako czy si wy wietleniem informacji o prawid owym utworzeniu bazy:

ń

ę

ś

ł

CREATE DATABASE

Utworzyli my zatem baz o nazwie

ś

ę

student

której w a cicielem jest

ł ś

student

.

Za ó my teraz e u ytkownik student nie jest u ytkownikiem w systemie bazy

ł ż

ż

ż

ż

danych, otrzymamy wówczas nast puj cy komunikat o b dzie:

ę

ą

łę

createdb: could not connect to database

template1: FATAL: user "student" does not exist

Natomiast gdy u ytkownik jest tak e u ytkownikiem w systemie bazy danych, ale

ż

ż

ż

nie posiada uprawnie do tworzenia nowych baz, otrzymamy nast puj cy

ń

ę

ą

komunikat:

createdb: database creation failed: ERROR:
permission denied to create database

Poniewa pierwszy przypadek wyst puje stosunkowo rzadko warto pozna opcje

ż

ę

ć

polecenia

createdb

.

Opcje:

nazwa

– to nazwa bazy do utworzenia. Nazwa musi by unikalna

ć

w ród wszystkich baz serwera PostgreSQL. Domy lnie pobierana jet

ś

ś

nazwa u ytkownika wydaj cego polecenie.

ż

ą

7

background image

opis

– to mo liwy opis który b dzie przechowywany z nowo

ż

ę

utworzon baz .

ą

ą

-O, --owner

– w a ciciel utworzonej bazy danych.

ł ś

-q, --quiet

– nie wy wietla adnych komunikatów.

ś

ż

-h, --host

- to nazwa maszyny na której jest uruchomiony serwer.

-p, --port

– okre la port po czenia TCP, na którym serwer

ś

łą

oczekuje po cze .

łą

ń

-E, --encoding kodowanie

– okre la jakiego kodowania

ś

znaków b dzie u ywa baza.

ę

ż

ć

-T, --template wzorzec

– okre la na podstawie jakiej

ś

wzorcowej bazy ma zosta utworzona nowa baza, domy lnie template1.

ć

ś

-U, --username

– nazwa u ytkownika do po czenia z baz , gdy

ż

łą

ą

tworzymy baz dla innego u ytkownika ni u ytkownik pow oki.

ę

ż

ż ż

ł

Przyk ady:

ł

Zak adamy e pracujemy w pow oce jako u ytkownik

ł

ż

ł

ż

student

.

createdb baza_testowa

utworzy baz o nazwie

ę

baza_testowa

której w a cicielem b dzie u ytkownik

ł ś

ę

ż

student

.

createdb -U admin baza_testowa

utworzy baz o nazwie

ę

baza_testowa

cz c si z serwerem jako u ytkownik

łą ą

ę

ż

admin

, w a cicielem bazy b dzie

ł ś

ę

admin

.

createdb -U admin -O student baza_testowa

utworzy baz o nazwie

ę

baza_testowa

cz c si z serwerem jako u ytkownik

łą ą

ę

ż

admin

, w a cicielem b dzie

ł ś

ę

student

.

czenie si jako inny u ytkownik jest bardzo cz sto praktykowane, gdy jak ju

Łą

ę

ż

ę

ż

ż

8

background image

wspomniano, nie jest wymagana zbie no

nazw u ytkowników systemu i serwera

ż ść

ż

bazy danych. Tworzenie bazy danych z innym, ni tworz cy w a cicielem, jest tak e

ż

ą

ł ś

ż

praktyk bardzo powszechn . Wi kszo

u ytkowników serwera bazy danych nie

ą

ą

ę

ść ż

ma uprawnie do tworzenia baz, jedyn mo liwo ci utworzenia przez nich bazy

ń

ą

ż

ś ą

jest zwrócenie si do administratora z uprzejm pro b o jej utworzenie.

ę

ą

ś ą

Drugim sposobem na utworzenie bazy danych jest wykonanie polecenia

CREATE

DATABASE

np. w programie

psql

. Sk adnia polecenia

ł

CREATE DATABASE nazwa

[ [ WITH] [OWNER [=] wlasciciel_bazy ]

[ LOCATION [=] 'sciezka' ]

[ TEMPLATE [=] wzorzec ]

[ ENCODING [=] kodowanie ] ]

Gdzie:

nazwa – nazwa tworzonej bazy ( obowi zkowa).

ą

OWNER – w a ciciel utworzonej bazy ( domy lnie tworz cy).

ł ś

ś

ą

LOCATION – inna od standardowej lokacja bazy danych, lokację

nale y najpierw utworzy

ż

ć

TEMPLATE – wzorzec na podstawie ktrego zostanie utworzona baza.

ENCODING – okre lenie kodowania znaków w bazie.

ś

Przyk ady:

ł

=# CREATE DATABASE baza_testowa TEMPLATE wzorzec;

Utworzy baz o nazwie

ę

baza_testowa

na podstawie bazy

wzorzec

.

=# CREATE DATABASE baza_testowa OWNER student ENCODING

latin1;

Utworzy baz o nazwie

ę

baza_testowa

, której w a cicielem b dzie u ytkownik

ł ś

ę

ż

student

, a znaki b d kodowane w systemie

ę ą

latin1

.

Pozosta o jeszcze tylko wyja ni w jaki sposób mo na usun

bazy. Podobnie jak

ł

ś ć

ż

ąć

przy usuwaniu u ytkowników istniej dwie metody. Pierwsza to polecenie

ż

ą

zewn trzne:

ę

dropdb [ opcje . . . ] nazwa_bazy

9

background image

Gdzie 

nazwa_bazy

– to nazwa bazy do usuni cia.

ę

Wa niejsze opcje:

ż

-h, --host

- to nazwa maszyny na której jest uruchomiony serwer.

-p, --port

– okre la port po czenia TCP, na którym serwer

ś

łą

oczekuje po cze .

łą

ń

-U, --username

– nazwa u ytkownika do po czenia z baz .

ż

łą

ą

Przyk ad:

ł

$ dropdb -U administrator baza_testowa

Polecenie usunie baz o nazwie

ę

baza_testowa

,

cz c si z serwerem jako

łą ą

ę

u ytkownik

ż

administrator

.

Drugi sposób to polecenie DROP DATABASE o bardzo prostej sk adni nie

ł

wymagaj cej wyja nie :

ą

ś

ń

DROP DATABASE nazwa_bazy

Na zako czenie ustalmy jakie konta u ytkowników i bazy b d potrzebne do dalszej

ń

ż

ę ą

nauki. Powinni my posiada konto administratora utworzone np. poleceniem:

ś

ć

$ createuser administrator -d -a

konto zwyk ego u ytkownika mog cego tworzy bazy:

ł

ż

ą

ć

$ createuser telewizja -d -A

oraz baza o nazwie telewizja, której w a cicielem b dzie u ytkownik o tej samej

ł ś

ę

ż

nazwie:

$ createdb -O telewizja telewizja

Pozosta e tworzone w trakcie nauki konta i bazy mo na usun

.

ł

ż

ąć

10


Document Outline


Wyszukiwarka

Podobne podstrony:
BAZY id 81304 Nieznany (2)
BAZY id 81304 Nieznany (2)
bazy danych druga id 81754 Nieznany (2)
Bazy danych kolo 2 1 id 81756 Nieznany
BAZY DANYCH 4 id 81365 Nieznany (2)
Bazy Danych1 secret id 81733 Nieznany (2)
bazy danych kol 2 id 81577 Nieznany (2)
Bazy danych id 81339 Nieznany (2)
bazy danych wyk2 id 81712 Nieznany (2)
bazy danych wyklad1 id 81713 Nieznany (2)
Bazy danych w03 07 id 81702 Nieznany
Bazy Danych bd4 id 633777 Nieznany (2)
Bazy danych w02 07 id 81701 Nieznany
Bazy danych w13 07 id 81707 Nieznany
Bazy danych 07 id 81462 Nieznany (2)
Bazy wzor W id 735795 Nieznany (2)
bazy danych wyk id 81390 Nieznany (2)

więcej podobnych podstron