Setelah berjam-jam mencoba mencari cara membuat akun pengguna yang hanya memiliki akses ke 1 DB, dan hanya dapat melihat DB itu. Saya pikir saya menemukan jawabannya!!!!
-
Buat akun pengguna ( pastikan tidak dipetakan ke Basis Data apa pun, jika tidak, Anda akan mendapatkan kesalahan terakhir Msg 15110, Level 16, Status 1 dan catat solusi yang diusulkan )
USE [master] GO CREATE LOGIN [us4] WITH PASSWORD=N'123', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
-
Klik Kanan pada bagian atas SQL (Nama SQLSERVER)>
Properties
>Permissions
>Klikuser account
, dan pilihDeny
untuk melihat database.use [master] GO DENY VIEW ANY DATABASE TO [us4]
-
Klik kanan pada DB, Properties, Files yang baru dibuat, dan ubah Pemilik menjadi akun yang baru dibuat.(catatan penting :
ALTER ROLE [db_owner] ADD MEMBER [us4]
tidak berfungsi )USE [dbname] GO EXEC dbo.sp_changedbowner @loginame = N'us4', @map = false
Pada titik ini, setelah pengguna masuk, dia akan melihat Master, tempdb dan juga akan melihat DB baru yang merupakan Pemilik DB. Anda mungkin ingin pergi ke Tools>Option
dan mengaktifkan opsi untuk menyembunyikan objek sistem sehingga Anda tidak menampilkan master,tempdb,dll. Anda mungkin juga memerlukan SP1 jika opsi ini tidak berfungsi
Msg 15110, Level 16, State 1, Line 1
The proposed new database owner is already a user or aliased in the database.
solusi yang diusulkan untuk Msg 15110: untuk mengatasi kesalahan di atas cukup hapus pengguna dari simpul keamanan basis data dan coba lagi
Semoga membantu...
Nikhil