tidak dapat menambahkan pengguna ke peran sysadmin di SQL Server

9

Saya menggunakan SQL Server 2008 Management Studio. Akun masuk saat ini milik grup administrator lokal mesin. Saya menggunakan mode Keamanan Terpadu Windows di SQL Server 2008.

Masalah saya adalah, setelah masuk ke SQL Server Management Studio, saya memilih nama login saya di bawah Keamanan / Login, lalu pilih Server Roles Tab, kemudian pilih item terakhir - sysadmin untuk membuat diri saya termasuk dalam grup / peran ini, tetapi dikatakan saya tidak memiliki izin yang cukup. ada yang tahu apa yang salah? Saya pikir administrator lokal harus dapat melakukan apa saja. :-)

George2
sumber
inilah yang disediakan microsoft tentang masalah ini: msdn.microsoft.com/en-us/library/dd207004.aspx saya dapat merekomendasikan skrip ini: archive.msdn.microsoft.com/addselftosqlsysadmin/Release/…

Jawaban:

6

Login sesi di mana Anda mencoba untuk mengatur izin harus memiliki izin.

Jadi, login yang Anda gunakan adalah admin lokal? Ini berarti grup admin lokal tidak memiliki hak yang cukup.

GUI akan menjalankan ini juga sp_addsrvrolemember . Meskipun ini mengatakan

Membutuhkan keanggotaan dalam peran yang ditambahkan anggota baru.

Jadi, grup admin lokal bukan anggota sysadmin.

Edit:

Untuk mengatasinya: Gunakan login yang memiliki hak. Anda dapat menemukannya menggunakan sp_helpsrvrolemember

gbn
sumber
Apa saran Anda untuk menyelesaikan masalah saya?
George2
Tidak yakin apakah ada jalan-jalan atau solusi tanpa menginstal ulang semua SQL Server 2008 lagi! :-(
George2
"Gunakan login yang memiliki hak" - bagaimana saya bisa mendapatkan daftar login yang memiliki izin yang cukup?
George2
Terima kasih, saya menemukan satu-satunya anggota yang terdaftar dari EXEC sp_helpsrvrolemember 'sysadmin' disebut sa, apakah ini Pengguna Windows? Saya tidak dapat menemukan pengguna seperti itu dari daftar Pengguna Windows. Ada ide?
George2
1
Ini adalah login SQL yang dilindungi undang-undang, bukan pengguna Windows. Pada pengujian saya menginstal SQL 2008, akun yang menginstal SQL Server terdaftar.
gbn
4

Dalam artikel yang dinyatakan baik Pemecahan Masalah: Menghubungkan ke SQL Server Ketika Administrator Sistem Terkunci , penulis memberi tahu kami bahwa yang harus kami lakukan untuk mendapatkan kembali kendali atas SQL Server kami adalah dengan

"Mulai instance SQL Server dalam mode single-user dengan menggunakan opsi -m atau -f. Setiap anggota grup Administrator lokal komputer kemudian dapat terhubung ke instance SQL Server sebagai anggota dari peran server tetap sysadmin. "

Sayangnya, apa artinya memulai dalam mode pengguna tunggal bukanlah masalah intuitif. Juga, setidaknya dalam pengalaman saya, keanggotaan dalam grup Administrator lokal komputer saya tidak memberikan status sysadmin ke akun "pengguna" saya.

Kisah ini telah dimulai ketika untuk mengatasi masalah keanggotaan di domain saya oleh server non-DC (konsekuensi dari mengubah ISP), saya membangun kembali DC ke Windows Server 2008 R2 dari 2008. Ini memecahkan beberapa masalah kecil tetapi tidak membahas pertanyaan keanggotaan oleh server bandel. Butuh perbaikan yang disarankan di ServerFault untuk mencapai itu (dalam kasus saya, itu adalah masalah mengatur ulang winsock dan tcpip).

SQL Server 2008 berada di server kedua itu, sekarang menjadi anggota domain. Inilah masalahnya. Ketika seseorang menunjukkan pada ServerFault, adalah umum untuk mendorong "biarkan pengguna saat ini menjadi sysadmin," ketika menginstal Server 2008. Umum juga untuk tidak mempertimbangkan orang lain. Karena identitas pengguna tunggal itu adalah anggota domain dari domain yang tidak ada lagi, tidak ada yang memiliki izin untuk mengelola Server Sql.

Saya masuk sebagai administrator server lokal yang ada sekitar ketika Sql Server diinstal, tetapi meskipun ini memungkinkan saya akses ke Studio Manajemen, saya segera menemukan bahwa BUILTIN \ Administrator hanya memiliki peran server "publik".

Setelah banyak penelitian dan percobaan, saya kebetulan menemukan sebuah artikel yang memberikan spesifikasi logon pengguna-tunggal http://technet.microsoft.com/en-us/library/ms180965.aspx :

C:\>cd \Program Files\Microsoft SQL Server\MSSQL10_50.1\MSSQL\Binn 
C:\...>sqlservr.exe -m

Untuk mempersiapkan untuk mengambil langkah ini, Anda harus mematikan Sql Server (yang berjalan secara default dalam kebanyakan kasus). Gunakan SQL Configuration Manager untuk menghentikan "Sql Server."

Kemudian, pada prompt perintah, navigasikan ke lokasi file program (atau setara pada mesin Anda), dan keluarkan perintah "sqlservr.exe -m". Jika Anda melihat aliran aktivitas dicatat di command prompt Anda, Anda berhasil. Jika gagal memulai, maka Anda mungkin sudah menjalankan SQL Server. Matikan itu.

Izinkan instance pengguna tunggal untuk melampirkan database-nya. Ketika aktivitas log telah berhenti, buka Management Studio. Anda akan secara otomatis dalam mode satu pengguna, dan karenanya akun apa pun yang Anda wakili akan menjadi sysadmin. Gunakan kekuatan itu untuk menyesuaikan login Keamanan dan peran server.

Dalam kasus saya, saya harus membuat ulang akun domain di domain baru, kemudian menghapus namakes mereka dalam SQL Server, dan merekonstruksi mereka (karena situasi SID / GUID), menugaskan kembali izin ke database tertentu yang diperlukan.

Michael Broschat
sumber
Ada juga cara lain untuk mengatur parameter: layanan terbuka, manajer, pilih layanan dan kemudian properti dari menu klik kanan. Di tab umum ada edit "Mulai parameter". Ketikkan parameter yang diperlukan di sana. Kemudian mulai layanan menggunakan tombol mulai di halaman itu , parameter yang ditetapkan di sana tidak permanen dan hanya berlaku ketika layanan dimulai dari dialog Properties.
ldsandon
3

SQL Server 2008 tidak lagi menambahkan BUILTIN \ Administrator sebagai anggota peran server tetap sysadmin

Itu benar, TETAPI dalam hal ini Anda dapat memulihkan dari situasi itu memulai Layanan SQL Server dalam Mode Pengguna Tunggal (mode darurat), dan admin lokal mana pun akan dapat masuk.

Lihat MSDN .

abatishchev
sumber
2

Secara default SQL menambahkan grup BUILTIN \ Administrators ke peran sysadmin, artinya setiap administrator NT lokal secara otomatis adalah SQL sysadmin. Di Vista, karena UAC, Anda harus menjalankan dalam mode 'sebagai Administrator' untuk memanfaatkan hak istimewa ini.

  • Jika Anda menggunakan Vista, jalankan alat klien (SSMS) 'sebagai administrator' dan kemudian coba tambahkan diri Anda sebagai sysadmin.
  • Jika grup BUILTIN \ Administrators dihapus dari peran sysadmin secara tidak sengaja, maka Anda harus masuk dengan login sysadmin lainnya. Jika tidak ada login sysadmin lain, Anda harus login dengan otentikasi SQL sebagai sa dan menggunakan kata sandi sa yang ditetapkan selama pengaturan. Setelah masuk sebagai anggota sysadmin, iklan BUILTIN \ Admisnitrators kembali ke peran sysadmin. Jika SQL login dinonaktifkan maka selamat, Anda cukup mengunci diri Anda dari instalasi SQL.
  • Jika grup BUILTIN \ Administrators sengaja dihapus dari peran sysadmin (sesuai KB932881 ) maka Anda mencoba untuk meretas ke dalam sistem yang Anda tidak punya izin untuk melakukannya.
Remus Rusanu
sumber
Hai Remus, saya bingung bahwa selama proses instalasi, saya tidak mengatur passowrd untuk sa, apakah ada kata sandi standar?
George2
Kebingungan lain adalah, mulai dari menjalankan prosedur store sp_helpsrvrolemember untuk menemukan semua pengguna peran sysadmin, hanya sa yang terdaftar, tidak ada pengguna lain dari grup admin mesin lokal, ada ide mengapa?
George2
Tidak ada kata sandi default untuk sa. kata sandi sa diatur selama pengaturan, jika otentikasi campuran diaktifkan. Anda harus meminta administrator database Anda untuk memberi Anda akses jika Anda membutuhkannya.
Remus Rusanu
"Jika login SQL dinonaktifkan maka selamat, Anda cukup mengunci diri dari instalasi SQL." Dalam hal ini, lihat jawaban Jordi di bawah ini untuk memulai SQL Server dalam Mode Pengguna Tunggal.
Michiel van Oosterhout
1

Secara default SQL Server 2008 tidak lagi menambahkan BUILTIN \ Administrator sebagai anggota peran server tetap sysadmin. Ketika Anda pergi melalui pemasang, ia bertanya akun atau akun apa yang harus memiliki hak sysadmin. Ada tombol yang pada dasarnya mengatakan "make me a sysadmin" yang akan menambahkan akun pengguna yang melakukan instalasi sebagai sysadmin.

Jika mereka tidak menambahkan pengguna lain sebagai sysadmin maka hanya pengguna saat ini yang merupakan sysamdin. Anda harus meminta orang itu masuk ke SQL Server dan memberikan hak sysadmin DBAs.

mrdenny
sumber
0

Saya merenungkan masalah yang sama setelah instalasi baru sampai saya mendaftarkan server, pada SQL Server 2008, maka semuanya berjalan sebagaimana mestinya


sumber