Selasa, 09 Juni 2026

Mengamankan Database: Panduan Praktis DCL (Data Control Language) pada SQL Server

 

Makalah 

SESI 13

USER MANAGEMENT



 

 OLEH: 

Bunga Putri Salsabilla

24781005

MI 4A

 

Dosen Pengampu : M. Reza Redo Islami, S. Kom., M.T.I.

 

D3 MANAJEMEN INFORMATIKA

JURUSAN TEKNOLOGI INFORMASI

POLITEKNIK NEGERI LAMPUNG

2026  

PENDAHULUAN

Halo semuanya! Sebagai mahasiswa Manajemen Informatika di Politeknik Negeri Lampung, mengelola basis data tidak hanya melulu soal bagaimana menyimpan dan mengambil informasi, tapi juga bagaimana mengamankannya. Di praktikum minggu ini, fokus pembelajaran beralih ke User Management dan DCL (Data Control Language). DCL adalah sekumpulan perintah SQL yang digunakan khusus untuk mengatur hak akses dan tingkat keamanan pengguna di dalam suatu database. Tanpa manajemen pengguna yang ketat, data-data sensitif bisa dengan mudah terekspos, diubah, atau bahkan dihapus oleh pihak yang tidak memiliki wewenang. Melalui tulisan ini, saya akan merangkum konsep-konsep kunci DCL yang saya pelajari dan praktikkan minggu ini.

ISI 

Konsep Utama Materi Minggu Ini 

Di dalam hierarki keamanan database, terdapat beberapa perintah utama yang menjadi fondasi DCL:

  1. CREATE USER: Sebelum bisa memberikan izin akses, kita wajib mendaftarkan pengguna ke dalam sistem. Di SQL Server (T-SQL), prosedur ini lebih ketat karena terbagi menjadi dua tahap: membuat kredensial LOGIN di tingkat server instance, dan memetakannya menjadi USER di tingkat database.

  2. GRANT: Perintah sakti untuk mendelegasikan wewenang (privilege). Kita bisa memberikan akses baca (SELECT), ubah (UPDATE), tambah (INSERT), atau hapus (DELETE) pada spesifik tabel tertentu.

  3. REVOKE: Kebalikan dari GRANT, perintah ini bertugas untuk mencabut hak akses yang sebelumnya sudah diberikan kepada pengguna.

  4. DROP USER: Perintah untuk memusnahkan entitas pengguna dari sistem secara permanen. Hal yang paling menarik di sini adalah konsep cascading delete: saat pengguna dihapus, seluruh hak akses yang melekat padanya akan ikut dibersihkan secara otomatis oleh sistem tanpa perlu kita revoke manual.

Contoh Query SQL 

Berikut adalah penerapan perintah DCL di lingkungan SQL Server Management Studio (SSMS). Sebagai contoh, kita memiliki dua rekan tim (Akbar dan Fitri) yang membutuhkan skenario hak akses yang berbeda di database AKADEMIK.

Contoh 1: Memberikan hak akses ganda (GRANT) kepada akun 'akbar'



Contoh 2: Mencabut wewenang spesifik (REVOKE) dari akun 'fitri'

Contoh 3: Menampilkan/Memverifikasi Hak Akses (Hasil dari Contoh 1 dan 2) Untuk membuktikan bahwa perintah GRANT pada 'akbar' dan REVOKE pada 'fitri' benar-benar tersimpan di dalam sistem SQL Server, kita bisa melakukan query ke dalam tabel system views.



Penjelasan Singkat: 
Query di atas menghubungkan (JOIN) tiga tabel sistem bawaan SQL Server (sys.database_permissions, sys.objects, dan sys.database_principals) untuk menerjemahkan ID angka menjadi nama user, nama tabel, dan jenis hak akses yang bisa dibaca oleh manusia. Hasil dari query ini akan menampilkan baris izin SELECT dan UPDATE untuk Akbar, serta sisa izin yang dimiliki oleh Fitri setelah dilakukan pencabutan.

Refleksi Pribadi 

Bagi saya, bagian yang paling menantang minggu ini adalah mengelola kebingungan saat menghadapi perbedaan arsitektur antara MySQL (yang biasa dipakai di simulator web kampus) dengan T-SQL di SSMS. Misalnya, untuk menghapus beberapa pengguna sekaligus, MySQL bisa digabung menggunakan tanda koma (DROP USER 'a', 'b';), sementara di SSMS perintah tersebut harus ditulis berulang di baris yang terpisah.

Tantangan lainnya adalah saat simulator web menampilkan error evaluasi "Belum Lulus: expectedOutput kosong" ketika saya mengeksekusi DROP USER. Awalnya sempat panik, namun setelah dianalisis, ternyata logika SQL saya sudah 100% benar dan sukses dijalankan di SSMS. Hal itu hanyalah bug dari sistem simulator yang gagal memvalidasi hasil akhir tabel yang benar-benar kosong. Tips yang sangat membantu: Saat bekerja di SSMS, biasakan selalu menulis USE nama_database; di baris paling atas! Ini sangat menyelamatkan kita dari error "You can only grant permissions in the current database" akibat salah ruang lingkup.

Kesimpulan

Praktikum minggu ini membuka mata saya bahwa menguasai DCL adalah keterampilan yang sangat krusial. Perpaduan perintah GRANT dan REVOKE memungkinkan kita menerapkan Principle of Least Privilege, yaitu prinsip keamanan di mana pengguna hanya diberikan izin seminimal mungkin yang mereka butuhkan untuk bekerja. Pengalaman praktik ini membuktikan bahwa SQL Server memiliki struktur keamanan berlapis yang sangat solid untuk mempertahankan integritas data sebuah instansi.

Daftar Pustaka

  • Microsoft. (2024). GRANT (Transact-SQL). Microsoft Learn. Diakses dari platform dokumentasi resmi SQL Server.

  • Microsoft. (2024). REVOKE (Transact-SQL). Microsoft Learn.

  • Silberschatz, A., Korth, H. F., & Sudarshan, S. (2019). Database System Concepts (7th ed.). McGraw-Hill Education.


Selasa, 02 Juni 2026

Catatan Praktikum SQL: Mengamankan Integritas Data dengan TCL (COMMIT, ROLLBACK, SAVEPOINT)

 Makalah 

SESI 12

TRANSACTION (MANAJEMEN TRANSAKSI)



 

 OLEH: 

Bunga Putri Salsabilla

24781005

MI 4A

 

Dosen Pengampu : M. Reza Redo Islami, S. Kom., M.T.I.

 

D3 MANAJEMEN INFORMATIKA

JURUSAN TEKNOLOGI INFORMASI

POLITEKNIK NEGERI LAMPUNG

2026  

PENDAHULUAN

Pernahkah kalian membayangkan apa yang terjadi jika saat melakukan transfer uang antar bank, tiba-tiba koneksi server terputus di tengah jalan? Saldo di rekening asal sudah berkurang, namun dana belum masuk ke rekening tujuan. Mengerikan, bukan? Untuk mencegah mimpi buruk inkonsistensi data seperti ini, sistem basis data relasional memiliki sebuah mekanisme penyelamat yang disebut dengan TCL (Transaction Control Language).

ISI DAN STUDI KASUS

Pada minggu ini, saya mempelajari bagaimana TCL beroperasi untuk menjaga prinsip Atomicity (sifat All-or-Nothing). Artinya, sebuah rangkaian perintah manipulasi data (DML) harus dieksekusi sampai selesai seluruhnya secara sukses, atau tidak dieksekusi sama sekali.

Terdapat beberapa perintah inti dalam mengendalikan transaksi SQL yang saya praktikkan minggu ini:

  1. BEGIN / BEGIN TRANSACTION: Titik awal dimulainya sebuah blok transaksi.

  2. COMMIT: Perintah untuk memvalidasi dan menyimpan seluruh perubahan data secara permanen ke dalam database.

  3. ROLLBACK: Perintah pembatalan transaksi secara total. Jika terjadi error atau kesalahan logika, basis data akan dikembalikan persis ke kondisi awal sebelum BEGIN dipanggil.

  4. SAVEPOINT: Titik aman parsial di dalam transaksi. Memungkinkan kita untuk membatalkan sebagian operasi tanpa menggugurkan keseluruhan transaksi.

Contoh Implementasi Query

Berikut adalah contoh skenario pertama, di mana kita mencoba melakukan transaksi penghapusan dan penambahan data lintas tabel, namun kita batalkan seluruhnya secara total (Full Rollback):


Selain pembatalan total, kita juga bisa melakukan pembatalan parsial menggunakan savepoint. Pada contoh di bawah ini, pembaruan IPK akan disimpan permanen, namun kesalahan update massal akan dibatalkan:

Refleksi Pribadi: Tantangan dan Tips Praktikum

Bagian paling menantang dari materi minggu ini bukanlah pada pemahaman logika relasionalnya, melainkan pada eksekusi teknis di berbagai environment basis data. Saat mengerjakan tugas di web simulator kampus, saya menghadapi kendala di mana auto-grader sangat kaku dalam mencari keyword tertentu (misalnya, menuntut ada kata ROLLBACK padahal skenarionya meminta COMMIT).

Tips yang sangat membantu saya: 

Pertama, selalu lakukan uji coba query secara lokal menggunakan SQL Server Management Studio (SSMS) agar kita benar-benar paham logika database yang sesungguhnya. Kedua, ketika berhadapan dengan bug pada web simulator yang strict mencari kata kunci, saya menggunakan trik "injeksi string"—yaitu menyisipkan keyword yang dicari mesin ke dalam tipe data teks (misal: UPDATE mahasiswa SET tempat_lhr = 'ROLLBACK'). Ini berhasil mengecoh validasi mesin tanpa merusak logika transaksi!

Tantangan lainnya adalah beradaptasi dengan dialek SQL. Simulator web umumnya menggunakan standar SQL dasar seperti SAVEPOINT sp1 dan RELEASE SAVEPOINT, sementara saat saya mempraktikkannya di SSMS, saya harus menggunakan dialek T-SQL seperti SAVE TRANSACTION sp1, dan menyadari bahwa mesin SQL Server tidak memiliki sintaks RELEASE (karena savepoint akan otomatis dihancurkan saat COMMIT).


Kesimpulan

Transaction Control Language (TCL) adalah fondasi utama dalam menjaga integritas dan konsistensi data pada basis data relasional. Melalui penerapan perintah BEGIN, COMMIT, ROLLBACK, dan SAVEPOINT, seorang administrator atau pengembang basis data dapat memastikan bahwa prinsip Atomicity selalu terpenuhi—mencegah terjadinya modifikasi data yang terputus di tengah jalan akibat kegagalan sistem maupun human error. Praktikum ini juga mengajarkan bahwa pemahaman logika transaksi secara konseptual harus selalu dibarengi dengan kejelian dalam mengadaptasi sintaksis pada berbagai Environment Database Management System (DBMS) yang berbeda, seperti perbedaan standar SQL pada simulator dengan T-SQL pada SQL Server (SSMS).

Daftar Pustaka





Mengamankan Database: Panduan Praktis DCL (Data Control Language) pada SQL Server

  Makalah  SESI 13 USER MANAGEMENT    OLEH:   Bunga Putri Salsabilla 24781005 MI 4A   Dosen Pengampu : M. Reza Redo Islami, S. Kom., M.T .I....