Manajemen User dan Hak Akses pada Database CREATE USER, GRANT, REVOKE, DROP USER, dan Pemberian Hak Akses

 

Manajemen User dan Hak Akses pada Database CREATE USER, GRANT, REVOKE, DROP USER, dan Pemberian Hak Akses 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 Disusun Oleh

 

Fiqa Khairunisa

NPM 24781102

Kelas: Manajemen Informatika 4D

Tanggal Pengumpulan: 11 Juni 2026

 

 

 

 

 

 

 

 

 

 

 

 

PROGRAM STUDI MANAJEMEN INFORMATIKA

Jurusan teknologi Infromasi

Politeknik Negeri Lampung

2026
















TUJUAN PEMBELAJARAN

Praktikum ini bertujuan untuk membuat user baru dengan CREATE USER IDENTIFIED BY 'password', memberi hak akses spesifik seperti SELECT, INSERT, UPDATE, dan DELETE dengan GRANT ON tabel TO user, memberi semua hak akses dengan GRANT ALL PRIVILEGES, mencabut sebagian atau seluruh hak akses dengan REVOKE, menghapus user dengan DROP USER dimana permission otomatis ikut hilang, serta memverifikasi daftar user dan matriks permission dengan SHOW USERS dan SHOW PERMISSIONS.

DASAR TEORI

A. Konsep User dan Hak Akses

Dalam sistem manajemen basis data, user merupakan identitas yang digunakan untuk mengakses database. Setiap user memiliki hak akses yang berbeda-beda sesuai dengan peran dan kebutuhannya. Konsep ini penting untuk menjaga keamanan data agar tidak semua orang bisa membaca, mengubah, atau menghapus data secara bebas. Hak akses diberikan oleh administrator database sesuai dengan prinsip least privilege yaitu setiap user hanya mendapat akses seperlunya saja.

B. CREATE USER

CREATE USER adalah perintah SQL yang digunakan untuk membuat user baru pada sistem database. Di MySQL, sintaksnya adalah CREATE USER 'nama'@'host' IDENTIFIED BY 'password', sedangkan di SQL Server menggunakan CREATE LOGIN untuk membuat akun server dan CREATE USER untuk menghubungkannya ke database tertentu. Parameter host menentukan dari mana user boleh mengakses — localhost berarti hanya dari komputer lokal, sedangkan % berarti dari mana saja.

C. GRANT — Memberi Hak Akses

GRANT adalah perintah untuk memberikan hak akses kepada user terhadap objek database tertentu seperti tabel atau view. Privilege yang bisa diberikan antara lain SELECT, INSERT, UPDATE, DELETE, dan ALL PRIVILEGES. Sintaksnya adalah GRANT privilege ON tabel TO user. Pemberian hak akses yang tepat sangat penting untuk menjaga integritas dan keamanan data dalam sistem.

D. REVOKE — Mencabut Hak Akses

REVOKE adalah kebalikan dari GRANT, yaitu perintah untuk mencabut hak akses yang sebelumnya telah diberikan kepada user. Sintaksnya adalah REVOKE privilege ON tabel FROM user. REVOKE bisa dilakukan untuk satu privilege, beberapa privilege sekaligus, maupun semua privilege menggunakan ALL PRIVILEGES. Setelah REVOKE dijalankan, user tidak lagi memiliki hak akses yang dicabut tersebut.

E. DROP USER

DROP USER adalah perintah untuk menghapus user dari sistem database secara permanen. Ketika user dihapus, seluruh hak akses yang dimilikinya juga ikut terhapus. Di MySQL sintaksnya adalah DROP USER 'nama'@'host', sedangkan di SQL Server harus melakukan DROP USER untuk menghapus user dari database dan DROP LOGIN untuk menghapus akun servernya. Perintah ini harus digunakan dengan hati-hati karena tidak bisa dibatalkan.

F. Menampilkan User dan Hak Akses

Untuk melihat daftar user yang ada dalam database dapat menggunakan perintah SHOW USERS pada simulator atau query ke tabel sistem di SQL Server. Untuk melihat hak akses yang dimiliki suatu user dapat menggunakan SHOW PERMISSIONS pada simulator atau query ke sys.database_permissions di SQL Server. Fitur ini berguna untuk audit dan monitoring keamanan database.

G. Praktik Baik

Dalam pengelolaan user dan hak akses, terdapat beberapa praktik baik yang perlu diterapkan. Pertama, terapkan prinsip least privilege — berikan hak akses seminimal mungkin sesuai kebutuhan. Kedua, gunakan password yang kuat untuk setiap user. Ketiga, lakukan audit hak akses secara berkala. Keempat, segera cabut hak akses user yang sudah tidak aktif. Kelima, pisahkan akun administrator dengan akun pengguna biasa untuk menghindari penyalahgunaan akses.

ALAT DAN BAHAN

Laptop, SQL Server Management Studio (SSMS), Browser Google Chrome, Website simulasi SQL, Database akademik.

HASIL DAN PEMBAHASAN

Praktikum ini dilakukan menggunakan simulator user management berbasis web dan SSMS dengan database AKADEMIK2. Pengujian dilakukan secara bertahap dari Level 1 hingga Level 7 untuk memahami konsep manajemen user dan hak akses database secara menyeluruh.

Level 1 — CREATE USER

Pada level ini dilakukan pengujian pembuatan user baru menggunakan perintah CREATE USER. Pada skenario 1 user, berhasil dibuat user 'siti'@'localhost' dengan password 'rahasia' dan menghasilkan output "Commands completed successfully" di SSMS. Pada skenario 2 user, dibuat user 'admin' dan 'staff' sekaligus. Kendala yang ditemukan adalah simulator membaca dua perintah sebagai satu string sehingga hanya terbaca 1 baris, diselesaikan dengan mengganti @'localhost' menjadi @'%'. Pada skenario 3 user, dibuat tiga user 'andi', 'budi', dan 'cici' sekaligus dan berhasil terdaftar di database.

Level 2 — GRANT

Level ini menguji pemberian hak akses kepada user menggunakan perintah GRANT untuk privilege SELECT, INSERT, dan UPDATE. Pada skenario GRANT SELECT, user 'budi' berhasil diberikan akses SELECT pada tabel mahasiswa. Pada skenario GRANT INSERT, user 'staff' berhasil diberikan akses INSERT. Kendala yang ditemukan adalah format TO harus tanpa tanda kutip agar simulator bisa membaca dengan benar, yaitu menggunakan format staff@localhost bukan 'staff'@'localhost'. Pada skenario GRANT UPDATE, user 'editor' berhasil diberikan akses UPDATE pada tabel mahasiswa.

Level 3 — GRANT Multiple Privilege

Level ini menguji pemberian beberapa privilege sekaligus dalam satu perintah GRANT. Pada skenario GRANT 2 privilege, user 'siti' berhasil diberikan SELECT dan UPDATE sekaligus pada tabel mahasiswa. Pada skenario GRANT 4 privilege CRUD, user 'admin2' berhasil diberikan SELECT, INSERT, UPDATE, DELETE pada tabel dosen. Pada skenario GRANT ALL PRIVILEGES, user 'super2' berhasil diberikan semua hak akses pada tabel dosen. Catatan penting pada SSMS adalah ALL PRIVILEGES tidak tersedia sehingga harus disebutkan satu per satu.

Level 4 — REVOKE

Level ini menguji pencabutan hak akses menggunakan perintah REVOKE. Pada skenario REVOKE 1 privilege, user 'budi' diberikan SELECT dan INSERT kemudian INSERT dicabut sehingga hanya SELECT yang tersisa. Pada skenario REVOKE multiple, user 'editor' diberikan 4 privilege kemudian INSERT dan DELETE dicabut sehingga hanya SELECT dan UPDATE yang tersisa. Pada skenario REVOKE ALL PRIVILEGES, ditemukan bug pada simulator dimana expectedOutput kosong tidak bisa dibandingkan sehingga task tidak bisa lulus meskipun query sudah benar secara sintaks.

Level 5 — GRANT pada Multiple Tabel

Level ini menguji pemberian hak akses pada beberapa tabel sekaligus menggunakan beberapa perintah GRANT terpisah. Pada skenario GRANT pada 2 tabel, user 'reader' berhasil diberikan SELECT pada tabel mahasiswa dan dosen. Pada skenario GRANT pada 3 tabel, user 'viewer' berhasil diberikan SELECT pada tabel mahasiswa, dosen, dan prodi. Pada skenario GRANT ., user 'root' berhasil diberikan ALL PRIVILEGES pada semua tabel di semua database. Di SSMS menggunakan GRANT CONTROL ON DATABASE sebagai pengganti karena sintaks . tidak tersedia.

Level 6 — DROP USER

Level ini menguji penghapusan user menggunakan perintah DROP USER. Kendala utama yang ditemukan adalah bug simulator dimana DROP USER tanpa GRANT sebelumnya menghasilkan expectedOutput kosong yang tidak bisa dibandingkan. Solusi yang ditemukan adalah menambahkan GRANT sebelum DROP sehingga simulator bisa membandingkan hasilnya. Pada skenario 2 user dengan DROP 1, user 'tetap' dan 'hilang' dibuat kemudian 'hilang' dihapus sehingga hanya 'tetap' yang tersisa. Pada skenario 3 user dengan DROP 2, user 'a', 'b', 'c' dibuat kemudian 'a' dan 'c' dihapus sekaligus sehingga hanya 'b' yang tersisa.

Level 7 — Tugas Mandiri

Level terakhir merupakan tugas mandiri yang mengombinasikan seluruh konsep yang telah dipelajari. Pada skenario CREATE USER, berhasil dibuat dua user baru secara mandiri. Pada skenario GRANT, berhasil memberikan minimal 2 privilege pada satu tabel secara mandiri. Pada skenario REVOKE, berhasil memberikan 4 privilege kemudian mencabut 2 privilege sehingga 2 privilege tersisa. Pada skenario DROP dan kombinasi, berhasil mengombinasikan CREATE USER, GRANT, dan DROP USER dalam satu rangkaian perintah menggunakan pola CREATE-GRANT-DROP yang ditemukan dari pengalaman level sebelumnya.

Secara keseluruhan, praktikum ini berhasil membuktikan konsep manajemen user dan hak akses database. Perintah CREATE USER, GRANT, REVOKE, dan DROP USER terbukti berjalan sesuai fungsinya masing-masing. Terdapat beberapa perbedaan sintaks antara simulator MySQL-style dan SSMS SQL Server yang perlu diperhatikan terutama pada format penulisan username dan ketersediaan perintah tertentu.

ANALISIS PEMBAHASAN

Berdasarkan hasil praktikum yang telah dilakukan, dapat dianalisis bahwa konsep manajemen user dan hak akses database bekerja secara konsisten sesuai dengan teori yang ada.

Pertama, perintah CREATE USER terbukti berhasil membuat user baru dengan identitas unik berupa kombinasi nama dan host. Perbedaan antara @'localhost' dan @'%' ternyata cukup signifikan — @'localhost' membatasi akses hanya dari komputer lokal, sementara @'%' mengizinkan akses dari mana saja. Hal ini penting dipahami dalam konteks keamanan sistem karena penggunaan @'%' yang sembarangan bisa membuka celah keamanan.

Kedua, perintah GRANT terbukti fleksibel dalam memberikan hak akses. Privilege bisa diberikan satu per satu maupun beberapa sekaligus dalam satu perintah, bahkan bisa diberikan pada beberapa tabel berbeda secara terpisah. Temuan penting selama praktikum adalah format penulisan username pada bagian TO harus tanpa tanda kutip di simulator, yaitu menggunakan format user@host bukan 'user'@'host'. Perbedaan kecil ini ternyata sangat berpengaruh terhadap keberhasilan eksekusi perintah.

Ketiga, perintah REVOKE terbukti bekerja sebagai kebalikan dari GRANT dengan mencabut privilege yang sudah diberikan tanpa menghapus privilege lain yang tidak disebutkan. Ini membuktikan bahwa manajemen hak akses bersifat granular — administrator bisa mengatur setiap privilege secara spesifik sesuai kebutuhan. Namun ditemukan kendala pada skenario REVOKE ALL PRIVILEGES dimana simulator mengalami bug sehingga task tidak bisa lulus meskipun query sudah benar secara sintaks.

Keempat, perintah DROP USER terbukti menghapus user beserta seluruh hak aksesnya secara permanen. Temuan menarik selama praktikum adalah simulator hanya bisa memverifikasi hasil DROP USER jika sebelumnya ada operasi GRANT, karena tanpa itu expectedOutput menjadi kosong dan tidak bisa dibandingkan. Ini menunjukkan bahwa simulator memerlukan state permission yang terdefinisi sebelum bisa melakukan verifikasi penghapusan user.

Kelima, ditemukan perbedaan implementasi yang cukup signifikan antara simulator MySQL-style dan SSMS SQL Server. Di MySQL cukup menggunakan satu perintah CREATE USER, sedangkan di SQL Server harus menggunakan dua perintah yaitu CREATE LOGIN dan CREATE USER. Begitu pula untuk DROP, di SQL Server harus melakukan DROP USER dan DROP LOGIN secara terpisah.

Keenam, konsep ALL PRIVILEGES juga memiliki perbedaan implementasi antar platform. Di MySQL tersedia perintah GRANT ALL PRIVILEGES yang praktis, sedangkan di SQL Server harus menyebutkan setiap privilege satu per satu. Untuk akses penuh ke seluruh database di SQL Server digunakan GRANT CONTROL ON DATABASE sebagai penggantinya.

Ketujuh, manajemen user dan hak akses database merupakan aspek penting dalam keamanan sistem informasi. Pemberian hak akses yang tepat dan terkontrol sesuai prinsip least privilege terbukti bisa diterapkan dengan kombinasi perintah CREATE USER, GRANT, REVOKE, dan DROP USER secara efektif.

KESIMPULAN

Pertama, perintah CREATE USER berhasil membuat user baru dengan identitas unik berupa kombinasi nama dan host. Perbedaan penggunaan @'localhost' dan @'%' memiliki implikasi keamanan yang berbeda dimana @'localhost' lebih aman karena membatasi akses hanya dari komputer lokal.

Kedua, perintah GRANT terbukti fleksibel dalam memberikan hak akses baik satu privilege maupun beberapa privilege sekaligus pada satu atau beberapa tabel berbeda. Format penulisan username pada bagian TO harus tanpa tanda kutip di simulator agar perintah bisa dieksekusi dengan benar.

Ketiga, perintah REVOKE berhasil mencabut hak akses secara spesifik tanpa mempengaruhi privilege lain yang tidak disebutkan, membuktikan bahwa manajemen hak akses bersifat granular dan bisa diatur sesuai kebutuhan.

Keempat, perintah DROP USER berhasil menghapus user beserta seluruh hak aksesnya secara permanen. Simulator memerlukan operasi GRANT sebelumnya agar bisa memverifikasi hasil DROP USER dengan benar.

Kelima, terdapat perbedaan sintaks yang cukup signifikan antara MySQL dan SQL Server terutama pada CREATE USER yang di SQL Server memerlukan dua perintah terpisah yaitu CREATE LOGIN dan CREATE USER, serta ALL PRIVILEGES yang tidak tersedia di SQL Server sehingga harus disebutkan satu per satu.

Keenam, pemahaman tentang manajemen user dan hak akses database sangat penting dalam pengembangan sistem informasi nyata karena menjamin keamanan data dengan memastikan setiap user hanya memiliki akses sesuai kebutuhannya berdasarkan prinsip least privilege.

Komentar

Postingan populer dari blog ini

Implementasi Stored Procedure Lanjutan pada Pemrograman SQL II Menggunakan MySQL dan SQL Server Management Studio