Sumber: Agar Posting Blog tidak bisa di Copy Paste! | jagoBlog.com

Sabtu, 01 Oktober 2011

PRIVILAGES ON MYSQL


Privileges  pada MySQL

Informasi hak akses disimpan pada tabel user, db, host, tables_priv, dan columns_priv pada database mysql (yaitu database bernama mysql). Server MySQL membaca isi dari tabel-tabel ini ketika mulai dijalankan dan pada waktu-waktu tertentu.

Privilege
Column
Context
select
Select_priv
tables
insert
Insert_priv
tables
update
Update_priv
tables
delete
Delete_priv
tables
index
Index_priv
tables
alter
Alter_priv
tables
create
Create_priv
databases, tables or indexes
drop
Drop_priv
databases or tables
grant
Grant_priv
databases or tables
references
References_priv
databases or tables
reload
Reload_priv
server administration
shutdown
Shutdown_priv
server administration
process
Process_priv
server administration
file
File_priv
file access on server

Privileges select, insert, update, dan delete mengijinkan anda untuk melakukan operasi pada baris-baris yang terdapat pada tabel dalam sebuah database.
Pernyataan SELECT memerlukan privilege select hanya jika benar-benar mengambil data dari tabel. Anda dapat mengeksekusi pernyataan SELECT tertentu bahkan tanpa hak akses untuk mengakses sembarang database di server. Sebagai contoh, anda dapat menggunakan program mysql klien sebagai kalkulator sederhana :
mysql> SELECT 1+1;
mysql> SELECT PI()*2;

Privilege index mengijinkan anda untuk membuat atau menghapus index.
Privilege alter mengijinkan anda untuk menggunakan ALTER TABLE.
Privilege create dan drop mengijinkan anda untuk membuat database dan tabel baru, atau untuk menghapus (drop) database dan tabel yang sudah ada.
Ingat bahwa jika anda memberi privilege drop ke database mysql ke seorang user, user tersebut dapat menghapus database dimana hak akses MySQL disimpan.!
Privilege grant mengijinkan anda untuk memberikan user lain privilege yang dimiliki oleh anda sendiri.
Privilege file memberikan anda ijin untuk membaca dan menulis file di server menggunakan pernyataan LOAD DATA INFILE dan SELECT … INTO OUTFILE. User yang diberi privilege ini dapat membaca atau menulis sembarang file yang dapat dibaca atau ditulis oleh server MySQL.
Privilege sisanya digunakan untuk operasi administratif, yang dapat dilakukan menggunakan program mysqladmin. Tabel di bawah menunjukkan perintah mysqladmin yang diijinkan oleh privilaege administratif untuk anda eksekusi:

Privilege
Commands permitted to privilege holders
reload
reload, refresh, flush-privileges, flush-hosts, flush-logs, flush-tables
shutdown
shutdown
process
processlist, kill

Perintah reload menyuruh server untuk membaca ulang tabel hak akses. Perintah refresh akan mem-flush semua tabel dan membuka dan menutup file log. flush-privileges adalah sinonim untuk reload.
Perintah shutdown akan mematikan server.
Perintah processlist akan menampilkan informasi mengenai threaad yang dieksekusi di server. Perintah kill akan menghentikan thread server.



PRIVILAGES ON MYSQL

Cara kerja sistem privilege on mysql
Sistem privilege MySQL memastikan bahwa user dapat melakukan hanya hal-hal yang diperbolehkan untuk mereka. Ketika anda connect ke server MySQL, identitas anda ditentukan oleh host tempat anda melakukan koneksi dan username yang anda ingin gunakan. Sistem memberi privilege sesuai dengan identitas anda dan apa yang ingin ada lakukan.
MySQL mempertimbangkan baik hostname dan username dalam mengidentifikasi karena mungkin ada alasan untuk menganggap bahwa username yang diberikan adalah milik orang yang sama dimanapun di Internet. Sebagai contoh, user bill yang connect dari whitehouse.gov tidak harus orang yang sama dengan user bill yang connect dari microsoft.com. MySQL menangani hal ini dengan mengijinkan anda un tuk menentukan user dari host yang berbeda yang mungkin namanya sama : anda dapat memberi bill sebuah himpunan privilege untuk koneksi dari whitehouse.gov,
dan himpunan privilege yang lain untuk koneksi dari microsoft.com.
Kendali akses MySQL melibatkan dua tingkat:
·         Tingkat 1: server mengecek apakah anda diijinkan untuk connect ke server.
·         Tingkat 2: Dianggap anda dapat connect, server mengecek tiap permintaan yang anda jalankan untuk melihat apakah privilege anda cukup untuk menjalankannya. Contohnya, jika anda mencoba untuk memilih baris dari tabel dalam database atau menghapus sebuah tabel dari database, server memastikan bahwa anda memiliki privilege select untuk tabel tersebut atau privilege drop untuk database.
Server menggunakan tabel user, db dan host dalam database mysql pada kedua tingkat kendali akses.
Untuk tingkat kedua dari kendali akses (verifikasi permintaan), jika permintaan melibatkan tabel, ditambah dengan konsultasi ke tabel tables_priv dan columns_priv.
Field jangkauan menentukan jangkauan dari tiap entry dalam tabel. Contohnya, jika sebuah entry tabel user dengan nilai Host dan User ‘thomas.loc.gov’ dan ‘bob’ akan digunakan untuk mengauttentifikasi koneksi yang dibuat ke server oleh bob dari host thomas.loc.gov.  Misalnya, ada entry di tabel db dengan field Host, User dan Db ‘thomas.loc.gov’, ’bob’ dan ‘reports’ akan digunakan ketika bob connect dari host thomas.loc.gov untuk mengakses database reports. Tabel tables_priv dan columns_priv berisi jangkauan fields yang mengindikasikan kombinasi tabel atau tabel/kolom dimana tiap entry berlaku. Untuk tujuan pengecekan akses, pembandingan nilai host adalah case insensitive. Nilai User, Password, Db dan Tabel_name adalah case sensitive. Nilai Column_name adalah case insensitive pada MySQL 3.22.12 atau selanjutnya.
Field privilege menunjukkan privilege yang diberikan oleh sebuah entry tabel, yaitu operasi apa yang dapat dilakukan. Server mengkombinasikan informasi dari bermacam tabel grant untuk membuat deskripsi komplet privilee user.
Field jangkauan adalah string, deklarasinya ditunjukkan di bawah, nilai default untuk tiap kolomnya adalah string kosong
Di dalam tabel user, db dan host, semua field privilege dideklarasikan sebagai ENUM(‘N’,’Y’) – masing-masing dapat memiliki nilai ‘N’ atau ‘Y’, dan nilai defaultnya adalah ‘N’.



Singkatnya, server menggunakan tabel grant sebagai berikut:
1.      Field jangkauan tabel user menentukan aapakah koneksi yang diminta diijinkan atau ditolak. Untuk mengijinkan koneksi, sembarang privilege yang diberikan dalam tabel user menunjukkan privilege global user. Privilege ini berlaku untuk semua database di server.
2.      Tabel db dan host digunakan bersama:
·         Field jangkauan tabel db menentukan user mana yang dapat mengakses database mana dari host mana. Field privilege menentukan operasi apa saja yang diijinkan.        
·         Tabel host digunakan sebagai ekstensi dari tabel db jika anda ingin entry tabel db tertentu untuk berlaku bagi beberapa host. Contohnya, jika anda ingin user untuk bisa menggunakan database dari beberapa host di network anda, biarkan nilai Host kosong dalam entry tabel db bagi user, lalu isilah tabel host dengan entry dari host-host tersebut.
3.      Tabel tables_priv dan columns_priv mirip dengan tabel db, tetapi untuk hal yang lebih detail: mereka berlaku untuk level tabel dan kolom dan bukannya pada level database.
Ingat bahwa privilege administratif (reload, shutdown, dll) hanya khusus ada di dalam tabel user. Hal ini karena operasi administratif adalah operasi di server itu sendiri dan tidak khusus untuk sebuah database, jadi tidak ada alasan untuk memasukkan privilege ini ke tabel grant yang lain. Bahkan, hanya tabel user yang butuh untuk dilihat untuk menentukan apakah boleh anda melakukan operasi administratif.
Privilege file juga khusus hanya di tabel user. Ini bukan privilege administratif, tetapi kemampuan anda untuk membaca dan menulis file di host server itu tidak terkait dengan database yang anda akses.

Untuk membuat database mahasiswa seperti menggunakan field nama, NPM, kelas dengan MySQL yaitu yang pertama dibuat nama database misalnya create database kemudian nama database contoh imah; Lalu, use imah untuk menggunakan database tersebut. Kemudian buat table, create table imah1 (NPM char (8) not null, nama varchar (20), kelas varchar (8), primary key (NPM)); kemudian enter maka query akan terbentuk. Dengan NPM sebagai primary key maksudnya adalah field yang unik, data yang tidak bisa disamakan dengan data yang lain, maka dari itu disebut primary key.
Lalu desc imah; untuk menampilkan field table yang digunakan. Maka akan terlampir daftar table yang berisi field, type dan dimana yang termasuk null atau primary key.
Kemudian masukkan datanya kedalam table imah1. Seperti insert into imah1 values (‘11108883’,’Salimah’,’3 KA 14’); maka akan terbentuk query. Kemudian tampilkan table yaitu select * from imah1; enter maka akan terlihat isian table. Lalu masukkan data kedua dengan cara yang sama yaitu insert into imah1 values (‘10108959’,’Herawati’,’3 KA 14’); enter kemudian select * from imah1; lagi.


Lalu untuk mengganti data yaitu menggunakan perintah “update” dan yang diganti adalah nama mahasiswa. Hal yang pertama dilakukan yaitu update imah1 set nama=’Sulimah’ where npm=’11108883’; enter kemudian isi data telah ter-update. Untuk menampilkan hasil akhir table yaitu dengan cara select * from imah1; enter dan itulah hasil akhir table.



dari berbagai sumber  

Tidak ada komentar: