MAKALAH8
MAKALAH8
PEMBAHASAN
Role berorientasi pada group, sekumpulan transaksi dibuat. Transaksi disini dapat
merupakan obyek yang berupa program yang berhubungan dengan data. Seorang
admintrator sekuriti dapat menambah dan menghapus transaksi ke dalam sebuah role atau
bahkan menolak user pada suatu role. Dengan mengelompokkan user kedalam role maka
ada memudahkan pada proses otorisasi dan kemampuan audit. Hal ini bertolak
belakangan dengan access list model pada umumnya yang dilakukan dengan jalan
mencari seluruh otorisasi yang ada kemudian mengalokasi hak dan ijin untuk user
tersebut.
Dalam mengembangkan aplikasi, kita tentu membagi-bagi user sesuai fungsinya. Kita
dapat merancang pembagian user sendiri atau kita belajar dari best practice yang pernah
dilakukan. Best practice untuk pembagian akses aplikasi adalah menggunakan RBAC
atau Role Based Access Control. Dalam RBAC ini kita akan membuat Role untuk
masing-masing tingkatan user. Dalam setiap Role ini terdapat berbagai menu yang
diberikan kepada Role ini lengkap dengan permissionnya.
Misal Role Admin Purchasing akan mendapatkan menu Purchase Order dengan
permission Create.
Kemudian Role Purchasing Manager akan mendapatkan menu Purchase Order dan
Purchase Request masing-masing dengan permission Approve.
Dengan demikan akan terjadi relasi Many to Many untuk User <-> Role.
Dalam sistem keamanan komputer, role-based access control (RBAC) adalah sebuah
pendekatan untuk membatasi akses sistem untuk pengguna yang berwenang. Hal ini
digunakan oleh sebagian besar perusahaan dengan lebih dari 500 karyawan, dan dapat
diimplementasikan melalui mandatory access control (MAC) atau discretionary access
control (DAC). RBAC kadang-kadang disebut sebagai role-based security.
Pada diagram di bawah, hubungan antara Pengguna (u), Grup / Role (g), dan Izin (p)
dengan tiga tabel, yaitu u_g, g_p, dan g_g, cukup fleksibel untuk mencakup semua tree
atau jaringan
Namun, bagian yang sulit dari model ini adalah bagaimana menangani hierarki role /
grup dalam SQL karena sifat rekursif dari navigasi antara hubungan grup (g_g).
Salah satu solusinya adalah dengan menggunakan SQL stored routines. Berikut ini
adalah desain di MySQL:
call get_permisions('u2');
call get_users('p1');
Untuk mendapatkan semua izin pengguna atau semua pengguna yang memiliki izin.
IF (x IS NOT NULL)
THEN
CALL get_children(x, x);
SET children = concat(parents, ',', x);
END IF;
END;
IF (x IS NOT NULL)
THEN
CALL get_parents(x, x);
SET parents = concat(children, ',', x);
END IF;
END;