Ya itu dimungkinkan melalui izin pasangan.
Pertama - untuk membuat database - Anda harus memberikan izin tingkat server Create Any Database
. Izin ini tidak seperti apa kedengarannya - kekuatan untuk membuat database. Catatan ini tidak memberikan peran server tetap dari dbcreator untuk login, karena peran server tetap tersebut memberikan izin perubahan / hapus pada basis data apa pun. Create Any Database
memungkinkan login untuk memiliki kekuasaan atas database yang mereka miliki, hanya. Ini juga akan memberikan kemampuan untuk memulihkan.
(Jadi dengan melakukan "Buat Basis Data Apa Saja " SAJA - Anda memberikan kemampuan untuk membuat basis data baru, tetapi menghindari kemampuan untuk Menjatuhkan atau Mengubah Basis Data APAPUN yang akan Anda peroleh dengan menggunakan peran server tetap dbcreator)
Untuk memberikan izin "Buat Database Apa Pun" -
use [master]
GO
GRANT CREATE ANY DATABASE TO [LoginName]
GO
Untuk kemampuan menjalankan DBCC CHECKDB
dan menjatuhkan basis data - peran basis data tetap db_owner sudah cukup. Ini memberikan semua yang Anda minta. Harap Catatan: Anda juga memberi pengguna ini kemampuan untuk memilih, menghapus, memotong, memperbarui dan menyisipkan db_owner
. Saya suka menganggap ini sebagai sysadmin
dalam database.
Anda hanya akan menerapkan izin ini ke basis data yang Anda inginkan. Ini akan memungkinkan Anda untuk mengontrol basis data mana yang dapat dijatuhkan, dikembalikan, atau dicentang oleh pengguna. Basis data apa pun yang Anda belum memberikan izin kepada pengguna ini akan aman dari pengguna ini yang melakukan tindakan ini
Untuk melakukan ini, pertama-tama Anda akan memetakan login ke pengguna basis data:
USE [DatabaseName]
GO
CREATE USER [UserName] FOR LOGIN [LoginName]
GO
Dan kemudian tambahkan pengguna itu ke db_owner
peran (Bekerja di SQL Server 2012 dan seterusnya):
ALTER ROLE [db_owner] ADD MEMBER [frank]
GO
Untuk SQL Server 2008 Anda harus menggunakan prosedur tersimpan sistem untuk menambahkan anggota peran sebagai komentator di bawah ini dengan tepat ditunjukkan:
EXEC sp_addrolemember 'db_owner', 'frank';
Anda juga dapat melakukan semua ini melalui GUI. Informasi login yang akan Anda lakukan melalui folder keamanan di SSMS di tingkat instance: Klik kanan pada login -> Properties -> Securables. Untuk tingkat basis data, Anda akan melakukannya melalui folder keamanan di tingkat basis data: klik kanan dan pilih pengguna baru -> pilih login yang Anda ingin pengguna dari daftar login server Anda / beri nama pengguna database itu nama -> buka tab keanggotaan untuk memilih peran keanggotaan.
Sistem bantuan SQL Server, Books Online, adalah sumber yang fantastis untuk sebagian besar pertanyaan perizinan juga - jika Anda menentukan Anda perlu menetapkan izin lainnya. Cukup lakukan pencarian untuk perintah T-SQL yang ingin Anda beri izin dan biasanya ada bagian Izin untuk perintah itu di artikel yang memberi tahu Anda izin apa yang diperlukan untuk melakukan tindakan ini. Anda dapat melihat artikel untuk DBCC CHECKDB untuk contoh - sekitar 7/8 dari jalan artikel adalah bagian izin.