Menyembunyikan user database pada SQL Server ke public user


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,

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'
GO
MEMBUAT 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]
GO
Selanjutnya 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
GO
Selanjutnya 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]
GO
Setelah 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<<~~

Subscribe to receive free email updates:

0 Response to "Menyembunyikan user database pada SQL Server ke public user"

Posting Komentar