Bagaimana mengatasi kesalahan Access Denied dengan stsadm -o retractsolution

8

Kami memiliki server 2 server yang menjalankan MOSS 2007 SP1. Saya adalah anggota grup Administrators di kedua server.

Saya juga anggota grup Administrator Pertanian.

Saya perlu memutakhirkan beberapa solusi, jadi tentu saja saya mulai dengan perintah retractsolution stsadm pada solusi lama. Apa pun solusi yang saya coba jalankan perintah, saya kembali 'Akses Ditolak.'

Untungnya, file ULS Log memberi saya sedikit informasi:

System.Data.SqlClient.SqlException: Tidak dapat membuka database "SharePoint_AdminContent" yang diminta oleh login. Login gagal. Gagal masuk untuk pengguna '*** Login Domain Saya ***'.

Apa yang tampak aneh di sini adalah kenyataan bahwa SharePoint berusaha untuk terhubung dengan akun MY menggunakan Otentikasi Terintegrasi Windows alih-alih menyambungkan dengan akun layanan Pertanian yang dikonfigurasi. Tentu saja akun saya tidak memiliki akses ke basis data Konten Admin.

Jadi pertanyaannya adalah: Apakah akun saya perlu diberikan izin ke basis data Konten Admin untuk melakukan tugas administrasi? Saya harap tidak berharap, jadi apakah ada hal lain yang sangat salah?

Trent
sumber

Jawaban:

11

Jawaban singkatnya adalah "ya" untuk sebagian besar kegiatan yang akan Anda lakukan melalui STSADM terhadap database SQL.

Untuk sebagian besar perintah STSADM yang mengeksekusi terhadap SharePoint API secara langsung (daripada menjadwalkan tugas untuk melakukan tindakan), konteks keamanan di mana perintah dijalankan adalah milik Anda - pengguna yang masuk. Seperti yang Anda lihat pada contoh yang Anda kutip, konteks akun pengguna Anda adalah yang akan digunakan untuk pencabutan. Jika Anda tidak memiliki hak yang sesuai dalam SQL untuk melakukan operasi itu akan gagal (seperti yang Anda lihat).

Ini kontras dengan sebagian besar aktivitas yang akan Anda lakukan melalui UI (yaitu, Admin Pusat). Dalam contoh yang Anda kutip, mencabut solusi melalui Admin Pusat akan menghasilkan perintah yang dieksekusi dalam konteks akun layanan pertanian, karena akun itu adalah identitas kumpulan aplikasi untuk situs Admin Pusat. Hasil: pencabutan akan berhasil meskipun Anda (secara pribadi) tidak memiliki izin ke database terkait.

Jika lingkungan Anda diatur sedemikian rupa sehingga akun Anda tidak memiliki akses tingkat admin ke database di dalam SharePoint farm, saya akan merekomendasikan melakukan sebanyak mungkin kegiatan melalui UI untuk menghindari jenis masalah konteks keamanan yang Anda temui . Anda akan menemukan bahwa Anda dapat melakukan sebagian besar dari apa yang perlu Anda lakukan dengan cara itu. Namun, satu pengecualian penting yang muncul dalam pikiran adalah menambahkan solusi (STSADM -o addolution) ke toko solusi pertanian - tidak ada mitra UI untuk perintah STSADM yang ada.

Atau, Anda bisa melakukan sesuatu yang mirip dengan yang disarankan MadlyAlive (yaitu, masuk dengan akun layanan pertanian) ... meskipun akses admin lokal untuk akun layanan pertanian tidak diperlukan atau direkomendasikan oleh Microsoft. Anda juga bisa membuat akun Anda memberikan set minimal izin di dalam SQL Server yang diperlukan untuk melakukan operasi Anda.

Untuk diskusi lebih lanjut, lihat artikel KB Microsoft di http://support.microsoft.com/kb/896148 .

Rekap aturan praktis: STSADM menggunakan konteks akun Anda, Admin Pusat menggunakan konteks akun layanan pertanian.

Saya harap ini membantu!

Sean P. McDonough
sumber
terima kasih atas wawasan dan informasi yang baik. Tidak pernah terlalu memikirkan fakta bahwa stsadm berjalan dalam konteks pengguna.
Aaron Weiker
Saya juga memiliki masalah yang sama ketika saya mencoba untuk menarik kembali solusi di UI Admin Pusat. Tapi ini info yang sangat bagus yang Anda bagikan. Sekarang saya akan memulai proses panjang birokrasi meminta akses yang sesuai ke SQL server.
Trent
Saya masih berharap akun saya mendapatkan semua izin ini ketika ditambahkan ke grup "Administrator Pertanian".
vitule
Menambahkan akun ke grup "Administrator Pertanian" di SharePoint Central Admin sama sekali tidak berpengaruh pada hak-hak akun itu di SQL Server. Menjadi admin pertanian memberi Anda hak (di dalam Admin Pusat) untuk memulai tindakan yang kemudian diambil atas nama Anda oleh akun layanan pertanian / timer melalui delegasi ... tetapi itu tidak mengubah izin apa pun pada database untuk akun pengguna dalam SQL . Menjadi admin pertanian adalah perubahan izin SharePoint saja - bukan SQL Server.
Sean P. McDonough
0

Ini mungkin menghindari masalah inti, tetapi ketika mencoba menjalankan perintah stsadm serupa

stsadm -o preupgradecheck

Saya menerima Access Ditolak juga. Tetapi menjalankan Command Prompt sebagai Administrator memungkinkan saya untuk menjalankannya.

Jeff Dalley
sumber