Pada tulisan kali ini saya akan mencoba menulis tentang bagaimana menyembunyikan list database yang ada dalam suatu server pada user, jadi jika ada 10 database dalam server dan terdapat 10 user untuk masing-masing database, pada settingan default semua user dapat melihat semua database yang ada dalam server namun hanya database nya yang dapat di akses, pada tulisan ini kita akan menyembunyikan database tersebut dari user yang bukan merupakan pemilik database tersebut. agar dapat lebih memahami apa yang saya maksud maka langsung saja kita mulai,
Baca juga artikel lainya di blog ini:
- Cara Membuat dan Menghapus Database SQL Server
- Perbedaan SQL Server Authentication dan Windows Authentication
- Step by step Installasi SQL Server 2012 Express with Tools
- Bagaimana Cara Install SQL server 2016 Express di Windows
- Menyembunyikan user database pada SQL Server ke public user
- Cara Install SQL Server 2012
- SQL Server Tutorial
Pertama-tama buka SQL Server management studio kemudian login sebagai sa
Misal kan ada 3 database yang berada pada server tersebut yaitu DB-A, DB-B dan DB-C dengan masing-masing user, user A tidak di berikan akses ke DB-B dan DB-C begitupun sebaliknya user B tidak bisa akses ke DB-A dan DB-C dan user C tidak bisa akses ke DB-A dan DB-B namun masing-masing user dapat melihat semua DB yang ada.
Ok langsung saja kita create 3 buah database;
USE MASTER GO CREATE DATABASE [DB-A] GO CREATE DATABASE [DB-B] GO CREATE DATABASE [DB-C] GO
Selanjutnya kita buat login dan user nya;
MEMBUAT LOGIN
USE MASTER GO CREATE LOGIN [user-A] WITH PASSWORD = 'P@ssw0rd' GO CREATE LOGIN [user-B] WITH PASSWORD = 'P@ssw0rd' GO CREATE LOGIN [user-C] WITH PASSWORD = 'P@ssw0rd' GOMEMBUAT USER
USE [DB-A] GO CREATE USER [user-A] FOR LOGIN [user-A] GO USE [DB-B] GO CREATE USER [user-B] FOR LOGIN [user-B] GO USE [DB-C] GO CREATE USER [user-C] FOR LOGIN [user-C] GOSelanjutnya coba login dengan menggunakan login yang telah kita buat tadi
Dapat di lihat pada gambar di atas, semua database yang ada pada server dapat di lihat oleh semua user, namun jika anda coba mengakses database selain database milik user yang di gunakan maka akan mendapatkan pesan error seperti tampilan berikut;
Ok sekarang kita coba untuk menyembunyikan list database yang yang ada dalam server tersebut, disconnect dari server dan login sebagai sa kemudian buka query baru dan eksekusi perintah berikut
USE MASTER GO DENY VIEW ANY DATABASE TO PUBLIC GOSelanjutnya coba anda login dengan login yang telah di buat sebelumnya dan lihat apa yang terjadi;
Lihat pada gambar di atas, semua yang ada hilang….
Setelah kita mengeksekusi perintah DENY VIEW ANY DATABASE maka hanya sysadmin dan database owner yang bisa melihat database yang ada pada server tersebut
Untuk membuat suatu login bisa melihat database nya sendiri kita akan merubah masing-masing user menjadi database owner pada database nya masing-masing, user-A pada DB-A, user-B pada DB-B dan user-C pada DB-C
Eksekusi script berikut dengan login sebagai sa
USE MASTER GO ALTER AUTHORIZATION ON DATABASE::[DB-A] TO [user-A] GO ALTER AUTHORIZATION ON DATABASE::[DB-B] TO [user-B] GO ALTER AUTHORIZATION ON DATABASE::[DB-C] TO [user-C] GOSetelah itu coba anda login dengan user masing-masing database dan liat apa yang terjadi
Taaaraaa sekarang masing-masing user hanya bisa melihat database nya masing-masing . . .
Sekian tulisan saya kali ini, semoga bermanfaat bagi semuanya…
~~>>Terima Kasih<<~~
Komentar
Posting Komentar