Agar lebih mudah dalam penjelasan, coba kita buat suatu kasus sebagai berikut :
1. Masuk postgreSQL dengan perintah berikut :
$ psql
dan hasilnya :
postgres=#
Ok, bisa dilihat tanda setelah "=" yaitu tanda "#" bisa diartikan adalah root, artinya user dengan hak akses root mempunya hak penuh atas kepemilikannya, misal Database atau Table.
2. Selanjutnya coba buat user dengan perintah berikut :
# create user abby;
dan tambahkan password :
# \password abby;
3. Kemudian coba buat lagi user yang berbeda :
# create user dika;
# \password dika;
untuk melihat user bisa dengan perintah query berikut :
# select * from pg_user;
4. Buat Database :
# create database mydb;
dan lihat owner dari database tersebut :
# \l
5. Rubah Owner database mydb ke user abby :
# alter database mydb owner to abby;
dan lihat owner dari databasenya :
# \l
6. Keluar dan Masuk ke Database mydb dengan user abby;
# \q
# psql mydb abby;
perbedaan user abby dengan postgres bisa dilihat di tanda "#" dan ">" artinya user abby tidah mempunyai hak penuh seperti user postgres.
7. Buat Table dengan nama table_abby :
> create table table_abby (id char(2),nama varchar(10));
hasilnya :
8. Sekarang coba keluar dan Masuk ke Database mydb dengan User dika :
> \q
> psql mydb dika;
9. Buat Table dengan nama table_dika :
> create table table_dika (id char(2),nama varchar(10));
10. Sekarang coba rubah owner user untuk masing-masing table :
dan lihat ownernya :
> \d
Masih dengan user dika, untuk mencobanya , Lakukan perintah Insert untuk table_abby :
> INSERT INTO table_abby values ('1','nama');
Muncul Pesan Error "Permission Denied"
dan sekarang Lakukan perintah Insert untuk table_dika :
> INSERT INTO table_dika values ('1','nama');
Mungkin dari hasil diatas bisa di mengerti apa Owner itu dari suatu Table ..
Semoga Membantu..