Saya mulai belajar SQL dan saya punya buku yang menyediakan database untuk dikerjakan. File-file di bawah ini ada di direktori tetapi masalahnya adalah ketika saya menjalankan query, ini memberi saya kesalahan ini:
Msg 5120, Level 16, State 101, Line 1 Tidak dapat membuka file fisik "C: \ Murach \ SQL Server 2008 \ Databases \ AP.mdf". Kesalahan sistem operasi 5: "5 (Akses ditolak.)".
CREATE DATABASE AP
ON PRIMARY (FILENAME = 'C:\Murach\SQL Server 2008\Databases\AP.mdf')
LOG ON (FILENAME = 'C:\Murach\SQL Server 2008\Databases\AP_log.ldf')
FOR ATTACH
GO
Dalam buku itu penulis mengatakan itu harus berhasil, tetapi tidak berfungsi dalam kasus saya. Saya mencari tetapi saya tidak tahu persis apa masalahnya, jadi saya memposting pertanyaan ini.
sql
sql-server
jijf dijai
sumber
sumber
Jawaban:
Akun layanan mesin database SQL Server harus memiliki izin untuk membaca / menulis di folder baru.
Lihat ini
sumber
Administrators Group
MSSQL$SQLEXPRESS
), mungkin tidak jelas bahwa Anda perlu menambahkan akun ke daftar izin folder sebagai:NT Service\MSSQL$SQLEXPRESS
Posting lama, tapi di sini adalah langkah demi langkah yang berfungsi untuk SQL Server 2014 berjalan di bawah windows 7:
Voa!
Saya pikir pengaturan akun masuk mungkin menjadi opsi dalam instalasi, tetapi jika demikian itu bukan default, dan mudah untuk dilewatkan jika Anda belum mengetahui masalah ini.
sumber
Untuk mengatasi masalah akses ditolak, saya mulai SSMS sebagai administrator dan yang memungkinkan saya untuk melampirkan database dari drive lokal saya. Basis data dibuat dalam contoh SQL dan windows lainnya.
sumber
Ini adalah masalah terkait Windows di mana SQL Server tidak memiliki izin yang sesuai untuk folder yang berisi file .bak dan karenanya kesalahan ini.
Cara termudah adalah menyalin file .bak Anda ke lokasi cadangan SQL default yang memiliki semua izin yang diperlukan. Anda tidak perlu bermain-main dengan hal lain. Di SQL SERVER 2012 , lokasi ini adalah
sumber
Saya punya masalah ini. Jalankan SQL Server sebagai administrator
sumber
Ya, Benar. Pertama Anda harus mengetahui akun layanan dari sqlserver, Anda dapat melihatnya di Task Manager ketika Anda menekan ctrl + alt + delete secara bersamaan; Kemudian, Anda harus memberikan hak baca / tulis dari "C : \ Murach \ SQL Server 2008 \ Databases "ke akun layanan.
sumber
Masalahnya adalah karena kurangnya izin untuk SQL Server untuk mengakses file mdf & ldf. Semua prosedur ini akan berfungsi:
sumber
Saya mengatasi masalah ini dengan menambahkan
Full control
izin untuk keduanya.mdf
dan.ldf
file untukUsers
grup.sumber
Bagi saya itu diselesaikan dengan cara berikut dengan SQL Server Management studio -Log in as admin (Saya login sebagai otentikasi windows) -Masukkan file mdf (klik kanan Database | attach | Add) -Log out as admin -Log in as pengguna normal
sumber
Izin server yang sebenarnya tidak akan menjadi masalah pada saat ini; semua terlihat ok. SQL Server sendiri membutuhkan izin folder.
tergantung pada versi Anda, Anda dapat menambahkan izin SERVERNAME $ MSSQLSERVER untuk menyentuh folder Anda. Selain itu, ia harus berada di direktori BACKUP default (baik di mana Anda menginstalnya atau default ke c: \ programfiles (x) \ MSSQL \ BACKUP.
sumber
Bahkan jika Anda melakukan langkah-langkah berikut ini Anda BISA mendapatkan pesan kesalahan yang sama.
Saya masih MEMILIKI kesalahan izin, tetapi kemudian saya perhatikan bahwa di layar Lampirkan, bagian bawah MASIH memperlihatkan file LOG, dan pesan kesalahan tetap sama.
Semoga ini bisa membantu seseorang yang melakukan hal yang sama.
sumber
Solusi yang Sangat Sederhana.
sumber
Saya menggunakan kerangka kerja Entity dalam aplikasi saya dan mengalami masalah ini, saya menetapkan izin apa pun dalam folder dan layanan windows dan tidak berfungsi, setelah itu saya memulai aplikasi saya sebagai administrator (klik kanan pada file exe dan pilih "run as admin") dan berfungsi baik.
sumber
Jika Anda mendapatkan kesalahan ini pada
.MDF
file diAPP_DATA
folder (atau di mana pun Anda meletakkannya) untuk proyek Visual Studio, cara saya melakukannya adalah dengan hanya menyalin izin dariDATA
folder yang ada di sini (saya menggunakan SQL Express 2014 untuk mendukung aplikasi yang lebih lama):(catatan: jalur instal Anda yang sebenarnya bervariasi - terutama jika nama instance Anda berbeda)
Klik dua kali pada
DATA
folder pertama sebagai administrator untuk memastikan Anda memiliki akses, lalu buka properti pada folder dan meniru yang sama untukAPP_DATA
folder. Dalam kasus saya, pengguna yang hilang adalahMSSQL$SQLEXPRESS2014
(karena saya beri nama instanceSQLEXPRESS2014
- Anda mungkin berbeda). Itu juga kebetulan menjadi nama pengguna layanan SQL Server.sumber
Untuk beberapa alasan, mengatur semua izin yang benar tidak membantu dalam kasus saya. Saya memiliki file
db.bak
yang tidak dapat saya pulihkan karena5(Access is denied.)
kesalahan. File ditempatkan di folder yang sama dengan beberapa file cadangan lainnya dan semua izin identik dengan file lain. Saya dapat memulihkan semua file lain kecuali file inidb.bak
. Saya bahkan mencoba mengubah log layanan SQL Server pada pengguna - masih hasilnya sama. Saya sudah mencoba menyalin file tanpa efek.Kemudian saya mencoba membuat file yang identik dengan mengeksekusi
alih-alih menyalin file. Dan voila berhasil!
db2.bak
berhasil dipulihkan.Saya menduga bahwa beberapa masalah lain dengan membaca file cadangan mungkin dilaporkan secara ilegal
5(Access is denied.)
oleh MS SQL.sumber
Di linux, saya pergi ke
/var/opt/mssql/data/
folder dan membuka terminal dengansudo
itu, mengubah izin file * .mdf dan * .fif saya seperti di bawah ini di mana Anda menggantiyourDB
dengan nama file Database Anda danmyUser
ke nama pengguna yang saat ini login:Setelah itu, terhubung kembali tanpa masalah.
sumber
Ini berarti pengguna login SSMS tidak memiliki izin pada file .mdf. Beginilah cara kerjanya bagi saya:
Saya telah membuka SSMS (Run as administrator) dan masuk sebagai pengguna administrator, database klik kanan lampiran, klik add, pilih file .mdf, klik Ok. Selesai
sumber