Anda di halaman 1dari 25

SQL

Sessi 14 GRAN dan REVOKE


Pendahuluan Authorization
Bahasa SQL mempunyai bagian yaitu:
Authorization
DDL SQL memasukkan perintah untuk
menentukan hak-hak akses ke relasi dan view.

2
Mengatur Akses User
Membuat User
CREATE USER nama IDENTIFIED BY password;
Hak/Wewenang disebut Privileges
System Privileges. Mengatur Hak dari USER
CREATE, DROP, SELECT,
Contoh : GRANT CREATE table to dono;
Object Privileges. Mengatur Hak USER pada Object dari
USER Lain
alter, delete, execute,
Contoh : GRANT SELECT on emp to dono;
Kumpulan Privileges dan Role disebut Role
Contoh,
GRANT connect TO dono;
GRANT resource TO dono;
Aturan Otorisasi
Aturan otorisasi: kontrol yang melekat dalam
sistem manajemen data yang membatasi
akses thd data dan tindakan-tindakan yang
dapat dilakukan oleh orang
Contoh, orang yang berhak mengakes data
bisa membaca seluruh database tetapi tidak
bisa mengubah data
Contoh Aturan Otorisasi
Subjek Objek Tindakan Kekangan
Bagian Data Pelanggan Menambah Limit kredit <= 5.000.000
Pemasaran
Bagian Data Pemesanan Menghapus Tak ada
Akuntansi
Bagian Data Pemesanan Membaca Tak ada
Pemenuhan Mengubah
Pesanan Menghapus
Implementasi Aturan Otorisasi
Perintah SQL GRANT dipakai untuk
menentukan otorisasi akses data
Perintah SQL REVOKE dipakai untuk mencabut
otorisasi
Aturan Otorisasi
Kontrol disertakan dalam sistem manajemen data
Membatasi:
Akses ke data
Aksi yang dapat dilakukan seseorang terhadap data

Matriks otorisasi untuk:


Subjek
Objek
Aksi
Batasan

7
Tabel otorisasi

User A User B User C


Read Y Y Y
Insert Y N N
Modify N Y N
Delete N N Y

8
Contoh Skenario Hak Akses
pemakai
Hak akses bebas: semua tabel
dalam database pegawai
arif

Hak akses SELECT: semua


tabel dalam database
novi pegawai

Hak akses SELECT dan INSERT:


khusus tabel bagian dalam
adit
database pegawai

Hak akses SELECT: tabel


infoprib dan bagian dalam
terra
database pegawai
Hak akses SELECT: tabel
pekerjaan dalam database
pegawai khusus kolom nip dan
kode_bag
Hak akses INSERT: tabel
pekerjaan dalam database
pegawai khusus kolom nip dan
kode_bag
Pembuatan User
Untuk membuat user baru digunakan perintah
CREATE USER. Sintak penulisan :

Contoh penggunaan
User System Privileges
Sekali user dibuat, maka DBA dapat memberikan system
privilege yang spesifik terhadap user tersebut, yaitu :
CREATE SESSION : untuk berhubungan dengan database
CREATE TABLE : untuk membuat table dalam skema user
CREATE SEQUENCE : untuk membuat sequence
CREATE VIEW : untuk membuat view
CREATE PROCEDURE : untuk membuat procedure
CONTOH Grant System Privileges

DBA dapat memberi atau grant privilege


system terhadap suatu user tertentu
Object Privileges
Object privilege adalah privilege yang sesuai untuk membentuk
perlakukan terhadap object database.
Tabel berikut menjelaskan ada tidaknya object privilege terhadap suatu
object dalam database
CONTOH GRANT
Grant query privileges pada table EMPLOYEES :

Grant privileges untuk mengubah kolom yang spesifik


terhadap user dan role :

user yang diberi object privilege dapat memberikan hak yang


diberikan atasnya itu kepada user yang lain
CONTOH GRANT
Perintah berikut mengijinkan semua user pada
system untuk melakukan query data dari table
DEPARTMENTS yang menjadi kepunyaan Alice.
Contoh Skenario Hak Akses MySQL
Contoh menciptakan user:
CREATE USER arif
IDENTIFIED BY '007arif';
Contoh memberikan hak akses ke arif:
GRANT ALL ON pegawai.* TO arif;
Hak Akses pada MySQL
Hak akses Keterangan
SELECT Hak akses ini memungkinkan pemakai melakukan operasi SELECT.
Beberapa sistem menggunakan hak akses READ yang identik dengan hak akses SELECT.

INSERT Hak akses ini memungkinkan pemakai melakukan operasi INSERT

UPDATE Hak akses ini memungkinkan pemakai melakukan operasi UPDATE

DELETE Hak akses ini memungkinkan pemakai melakukan operasi DELETE

INDEX Hak akses ini memungkinkan pemakai menciptakan indeks dan menghapus indeks

DROP Hak akses ini memungkinkan pemakai menghapus tabel

EXECUTE Hak akses yang memungkinkan pemakai menjalankan stored procedure (prosedur tersimpan)

FILE Hak akses yang memungkinkan pemakai menjalankan SELECT ... INTO OUTFILE and LOAD DATA
INFILE

ALTER Hak akses yang memungkinkan pemakai melaksanakan pernyataan ALTER TABLE untuk mengubah
tabel

LOCK TABLES Hak akses yang memungkinkan pemakai mengunci tabel

ALL Memberikan seluruh hak akses kecuali GRANT OPTION

GRANT OPTION Memungkinkan hak akses bisa diwariskan


Hak Akses
Memberikan hak akses SELECT saja:
GRANT SELECT
ON pegawai.* TO novi;
Membatasi Hak Akses pada
Kolom Tertentu
GRANT SELECT
ON pegawai.infoprib TO terra;
GRANT SELECT
ON pegawai.bagian TO terra;
GRANT SELECT (nip, kode_bag), UPDATE (nip,
kode_bag)
ON pegawai.pekerjaan TO terra;
GRANT OPTION
Menghapus Object Privileges
Untuk menghapus privilege, digunakan perintah REVOKE.
Dengan perintah REVOKE, privilege yang diberikan ke user
yang lain melalui WITH GRANT OPTION juga akan dihapus.
Sintak umum dari REVOKE :

Misal sebagai user, Alice menghapus privilege SELECT dan


INSERT yang diberikan untuk user Scott pada table
DEPARTMENTS.
Perintah REVOKE MySQL
Revoke merupakan kebalikan dari perintah
grant yaitu menghapus atau mencabut
kembali izin akses user MySQL yang
sebelumnya telah diberikan. Tingkat pilihan
yang dapat digunakan juga sama dengan
perintah grant sehingga semua izin akses
dengan grant dapat dicabut kembali.
Menghapus Akses Penuh
mysql> revoke all on *.* from
nm_user@localhost identified by
nm_passwd;
Perintah diatas membuat salah satu user tidak
mempunyai izin akses lagi. Meski sudah
dicabut aksesnya user tersebut masih dapat
login ke database MySQL tapi tidak perlu
khawatir karena user tersebut tidak bisa
berbuat apa-apa lagi.
Menghapus Akses Database
mysql> revoke all on nm_db.nm_tbl from
nm_user@localhost identified by nm_passwd;

Perintah diatas izin akses user pada tabel


tertentu telah dicabut sehingga tidak bisa
mengakses kembali.
Menghapus Akses Kolom
mysql> revoke update(nama) on
nm_db.nm_tbl from nm_user@localhost
identified by nm_passwd;

Peintah diatas akan mencabut akses untuk


kolom yang telah ditentukan sebelumnya.

Anda mungkin juga menyukai