Bagaimana cara mengkonfigurasi SQL Server 2012 sehingga dapat memulihkan dan melihat file di akun pengguna saya?

10

Saya memiliki contoh SQL Server 2012 berjalan sebagai layanan di komputer saya, dan menurut halaman layanan itu log on sebagai akun "NT Service \ MSSQLSERVER". Namun saya tidak bisa melihat nama akun itu di tempat lain termasuk di area "Pengguna dan Grup Lokal" di layar manajemen komputer, karena, seperti yang dikatakan tautan di bawah, itu bukan Akun Pengguna, itu adalah nama layanan, di kotak itu yang Microsoft sangat membantu memberi label "akun". Pada titik ini saya bisa melihat banyak orang bingung.

Tugas yang saya coba selesaikan adalah mengembalikan file menggunakan dialog SSMS "Locate Backup File", yang menggunakan dialog yang sama sekali berbeda dengan dialog buka file windows standar, mungkin karena sedang melakukan pekerjaan "jarak jauh" dan beroperasi dari konteks keamanan server SQL, sumber lain kebingungan pengguna akhir, yang saya harap pertanyaan ini dapat membantu menjernihkan.

Sejauh ini jika saya ingin mengembalikan file .mdf / .bak cadangan yang saya miliki di salah satu folder saya, saya harus mengatur folder itu agar dapat dibaca oleh semua orang atau saya tidak bisa masuk ke sana dengan SQL Server "Locate Backup Jendela file ". Saya menemukan ide ini bahwa Anda menggunakan GUI berbicara ke layanan yang memiliki akun pengguna dan hak berbeda dari Anda, bahwa tidak seorang pun di Microsoft bahkan peduli untuk menjelaskan kepada Anda, sangat membingungkan bahkan ketika saya memiliki pengalaman bertahun-tahun dengan administrasi sistem windows .

Saya berharap saya melewatkan beberapa halaman dokumentasi untuk SQL Server yang akan memberi tahu Anda, setelah menginstal contoh server SQL baru, bagaimana Anda mengatur keamanan.

Forum posting seperti ini bahkan memiliki staf Microsoft mengatakan "ini rumit", dan itu "berubah, lagi" di Denali. Bagaimana cara kerjanya sekarang di SQL Server 2012, dan bagaimana saya bisa menambahkan izin untuk membaca file milik Pengguna ke keamanan mesin Database SQL SID.

Warren P
sumber
Alasan mengapa SQL tidak menggunakan dialog standar adalah agar Anda tidak dapat memilih file yang tidak bisa dibaca oleh SQL. Seperti cara mengkonfigurasi keamanan, apakah Anda terbuka untuk mengubah akun yang berjalan di bawah SQL atau Anda ingin membiarkannya seperti sekarang? Jika mengubah akun layanan tidak masalah maka ini mudah untuk dijaga. Kami menggunakan akun bernama jadi saya tidak bisa melakukan pengujian dengan akun MSSQLSERVER umum untuk membantu dengan itu.
cfradenburg
1
Lihat di sini: dba.stackexchange.com/questions/23864/…
Jon Seigel
Jika semua orang mengubah Server SQL untuk dijalankan dengan ID pengguna biasa saat melakukan pengembangan, itu mungkin merupakan "praktik terbaik". Saya hanya ingin tahu apakah itu ide yang bagus atau tidak. Jika secara manual menambahkan "NT Service \ MSSQLSERVER" ke folder yang perlu saya tambahkan adalah ide standar, saya kira itu akan menjadi perbaikan minimal yang paling logis, bukan? Yang saya inginkan adalah bahwa SQL server SSMS UI sedikit lebih mudah untuk terhubung ke id akun "NT Server \ xxx" yang tersembunyi ini.
Warren P

Jawaban:

5

Untuk referensi "Denali" adalah SQL Server 2012. Berkenaan dengan "kebingungan pengguna akhir", saya tidak terlalu peduli dengan apakah pengguna akhir bingung atau tidak berkaitan dengan SSMS. Microsoft tidak mengembangkan alat ini untuk pengguna akhir normal, tetapi untuk administrator database dan / atau pengguna yang harus mengelola database. Oleh karena itu akan ada kurva belajar dengan alat yang disediakan dan bagaimana fungsinya. Kotak dialog file telah seperti itu di SSMS sejak SSMS keluar dengan SQL Server 2005. Ini sebabnya Anda akan secara umum melihat sebagian besar tetap dengan pernyataan T-SQL untuk membuat cadangan, memulihkan, atau melampirkan database yang telah menggunakannya sejak saat itu .

Untuk mengkonfigurasi izin sistem file dengan SQL Server Anda dapat mengikuti instruksi dari MSDN di sini .

Cara akun layanan ditangani tidak datang dengan atau karena SQL Server, itu karena perubahan pada tingkat sistem operasi. Window Server 2008 R2 menempatkan sedikit lapisan keamanan di sekitar akun layanan. Keuntungan yang Anda miliki adalah bahwa akun layanan dapat lebih mudah mengakses sumber daya pada domain bahkan jika diinstal dengan pengaturan default. Tautan ini memberikan tampilan yang cukup terperinci tentang bagaimana izin akun layanan ditangani dengan SQL Server 2012. Kutipan dari tautan di bawah ini di Akun Virtual yang digunakan secara default di SQL Server 2012. Ada juga tautan yang disediakan dalam artikel yang membahas lebih lanjut diskusi tentang konsep Akun Layanan dengan Windows, di sini. Itu dari Window Server 2008 R2 tapi saya percaya masih berlaku pada Window Server 2012, dan kemungkinan Window Server 2012 R2.

Akun Virtual

Akun virtual di Windows Server 2008 R2 dan Windows 7 adalah akun lokal yang dikelola yang menyediakan fitur berikut untuk menyederhanakan administrasi layanan. Akun virtual dikelola secara otomatis, dan akun virtual dapat mengakses jaringan di lingkungan domain. Jika nilai default digunakan untuk akun layanan selama pengaturan SQL Server pada Windows Server 2008 R2 atau Windows 7, akun virtual menggunakan nama contoh sebagai nama layanan digunakan, dalam format NT SERVICE \. Layanan yang berjalan sebagai akun virtual mengakses sumber daya jaringan dengan menggunakan kredensial akun komputer dalam format \ $. Saat menentukan akun virtual untuk memulai SQL Server, biarkan kata sandi kosong. Jika akun virtual gagal mendaftarkan Nama Pokok Layanan (SPN), daftarkan SPN secara manual. Untuk informasi lebih lanjut tentang mendaftarkan SPN secara manual, lihat Mendaftarkan Nama Pokok Layanan untuk Koneksi Kerberos. Catatan Catatan Akun virtual tidak dapat digunakan untuk SQL Server Failover Cluster Instance, karena akun virtual tidak akan memiliki SID yang sama pada setiap node cluster.

Tabel berikut mencantumkan contoh nama akun virtual.

Contoh default dari layanan Mesin Database: NT SERVICE \ MSSQLSERVER Dinamakan instance dari layanan Database Engine bernama PAYROLL: NT SERVICE \ MSSQL $ PAYROLL Layanan SQL Server Agent pada instance default dari SQL Server: NT SERVICE \ SQLSERVERAGENT Layanan SQL Server Agent pada layanan contoh dari SQL Server bernama PAYROLL: NT SERVICE \ SQLAGENT $ PAYROLL


sumber
3
Yang saya maksud dengan pengguna akhir adalah salah satu dari puluhan kategori orang, beberapa cukup profesional dan kompeten secara teknis dalam berbagai disiplin ilmu, tetapi yang mungkin TIDAK DBA. Secara pribadi saya pikir bahkan DBA akan menemukan bahwa UI pada alat ini dapat dilakukan untuk ditingkatkan. Pasar alat pihak ketiga yang kuat adalah indikator lain bahwa SSMS, walaupun gratis, sepenuhnya sepadan dengan harganya.
Warren P
1
Pada 2017 ini belum membaik. Jadi jawaban singkatnya adalah "itu tidak akan pernah menjadi lebih baik, pelajari cara kerjanya, betapa pun buruknya UI dirancang".
Warren P
2

Untuk melihat / mengakses file di folder lain, berikan NT SERVICE\MSSQLSERVERizin pada folder tersebut. Lihat jawaban saya yang diposting pada file .bak tidak terlihat di direktori mana pun di SSMS untuk cuplikan layar dan langkah-langkah yang terlibat. (Sedikit berbeda dengan menambahkan izin pengguna / grup normal ke folder.)

Semoga itu bisa membantu!

AdamsTips
sumber
1

Bahkan, jika Anda mencoba melakukan pemulihan melalui SSMS, dan Anda masuk melalui Otentikasi Windows (!), Itu akan menjadi akun Windows ANDA (dan bukan "semua orang) yang memerlukan izin untuk itu - BUKAN Layanan SQL Server Akun. Harapan yang menghapus kebingungan. Akun layanan memiliki kebutuhan lain. Misalnya jika Anda masuk melalui Akun Otentikasi SQL - lalu izin mana yang diminta sistem operasi? - Ini akan menjadi Akun Layanan SQL Server dalam hal ini hanya kasus! Ini belum berubah sejak SQL Server 7.0 dan mungkin bahkan sebelum itu :)

Andreas Wolter
sumber
1
Jangan lupa tentang kredensial .
Remus Rusanu
Saya tidak yakin ini menghilangkan kebingungan ... Jika Anda masuk melalui WA, akun SQL Server Anda memerlukan izin untuk memulihkan (sejauh yang menyangkut SQL Server), tetapi akun layanan SQL Server memerlukan izin baca pada sistem file untuk membuka .bakfile (yang umumnya tidak akan ada jika ada di direktori pengguna Anda, kecuali diberikan secara eksplisit).
Bruno