Saya menginstal SQL Server 2008 R2 ke komputer lokal saya. Tapi, saya tidak bisa membuat database baru karena hak (atau kurangnya).
"BUAT IZIN DATABASE DITOLAK"
Jadi, saya mencoba menetapkan hak istimewa admin ke login saya saat ini
"Pengguna tidak memiliki izin untuk melakukan tindakan ini."
Saya juga mencoba membuat login baru yang akan memiliki hak istimewa admin tetapi tidak berhasil. Bagaimana cara memberikan hak admin kepada diri saya sendiri sehingga saya dapat membuat database? Saya dapat menginstal ulang, tetapi saya memilih untuk tidak melakukannya.
sql
sql-server
sql-server-2008
ssms
sqlcmd
SkonJeet
sumber
sumber
Jawaban:
Ya - sepertinya Anda lupa menambahkan diri Anda ke peran sysadmin saat menginstal SQL Server. Jika Anda adalah administrator lokal di komputer Anda, posting blog ini dapat membantu Anda menggunakan SQLCMD untuk memasukkan akun Anda ke grup sysadmin SQL Server tanpa harus menginstal ulang. Ini sedikit celah keamanan di SQL Server, jika Anda bertanya kepada saya, tetapi itu akan membantu Anda dalam kasus ini.
sumber
Buka jendela prompt perintah. Jika Anda memiliki contoh default SQL Server yang sudah berjalan, jalankan perintah berikut pada prompt perintah untuk menghentikan layanan SQL Server:
Sekarang masuk ke direktori tempat SQL server diinstal. Direktori dapat misalnya menjadi salah satu dari ini:
Cari tahu direktori MSSQL Anda dan
CD
ke dalamnya seperti ini:Sekarang jalankan perintah berikut untuk memulai SQL Server dalam mode pengguna tunggal. Seperti
SQLCMD
yang ditentukan, hanya satuSQLCMD
koneksi yang dapat dibuat (dari jendela prompt perintah lain).Sekarang, buka jendela prompt perintah lain sebagai pengguna yang sama dengan yang memulai SQL Server dalam mode pengguna tunggal di atas, dan di dalamnya, jalankan:
Dan tekan enter. Sekarang Anda dapat menjalankan pernyataan SQL terhadap contoh SQL Server yang berjalan dalam mode pengguna tunggal:
Sumber .
DIPERBARUI Jangan lupa titik koma setelahnya
ALTER SERVER ROLE [sysadmin] ADD MEMBER [<<DOMAIN\USERNAME>>];
dan jangan tambahkan titik koma ekstra setelahGO
atau perintah tidak pernah dijalankan.sumber
ALTER SERVER ROLE
. misalnyaALTER SERVER ROLE [sysadmin] ADD MEMBER [domain\username]
GO;
di bagian akhirSaya mengadopsi database SQL 2012 di mana saya bukan sysadmin tetapi sebagai administrator di mesin. Saya menggunakan SSMS dengan "Run as Administrator", menambahkan akun NT saya sebagai login SQL dan mengatur peran server ke sysadmin. Tidak masalah.
sumber
Berikut skrip yang mengklaim dapat memperbaiki ini.
Dapatkan hak admin ke SQL Server Express lokal Anda dengan skrip sederhana ini
Unduh tautan ke skrip
Catatan: Anda harus memberikan file BAT dengan 'Nama Instance' (Mungkin akan menjadi 'MSSQLSERVER' - tetapi mungkin tidak): Anda bisa mendapatkan nilainya dengan terlebih dahulu menjalankan perintah berikut di "Microsoft SQL Server Management Console ":
Kemudian salin hasilnya untuk digunakan saat file BAT meminta 'SQL instance name'.
sumber
Microsoft ® Windows Based Script Host
voodoo ini jika tidak, ini tidak akan berfungsi (saya telah memetakan milik saya ke notepad.exe).Microsoft memiliki artikel tentang masalah ini. Itu melewati semuanya selangkah demi selangkah.
https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/connect-to-sql-server-when-system-administrators-are-locked-out
Singkatnya, ini melibatkan memulai instance sqlserver dengan
-m
seperti semua jawaban lain yang disarankan. Namun Microsoft memberikan instruksi yang sedikit lebih rinci.sumber
Ini sebenarnya cukup untuk menambahkan -m ke parameter startup di Sql Server Configuration Manager, restart layanan, pergi ke ssms dan tambahkan kotak centang sysadmin di akun Anda, lalu hapus -m restart lagi dan gunakan seperti biasa.
Opsi Startup Layanan Database Engine
sumber