1. ホーム
  2. sql-server

[解決済み] 一括読み込みができません。オペレーティングシステムのエラーコード5(アクセスが拒否されました。)

2022-02-28 16:27:42

質問

なぜか一括挿入の実行に問題があります。

BULK INSERT customer_stg
FROM 'C:\Users\Michael\workspace\pydb\data\andrew.out.txt'
WITH
(
    FIRSTROW=0,
    FIELDTERMINATOR='\t',
    ROWTERMINATOR='\n'
)

を読んで自信を持ちました。 これ とあるように、ユーザーロールを正しく設定しました。

bulkadmin固定サーバーロールのメンバーは、BULK INSERT文を実行することができます。

を設定しました。 Login Properties にサーバ全体のパーミッションを付与します。 bulkadmin


<サブ (出典 iforce.co.nz )

そして、コマンド EXEC sp_helpsrvrolemember 'bulkadmin' は、上記の情報が成功したことを教えてくれ、現在のユーザー Michael-PC\Michaelbulkadmin のパーミッションが必要です。


<サブ (出典 iforce.co.nz )

しかし、私が知っている限りではすべて正しく設定したにもかかわらず、SQL Server Management Studioから直接一括挿入を実行するとエラーが発生します。

Msg 4861, Level 16, State 1, Line 2
Cannot bulk load because file "C:\UsersMichael³³workspace³³pydb³³data³³andrew.out.txt" could not be opened. Operating system error code 5(Access is denied.).

というのは、どうやら bulkadmins を実行することができます。 bulkadmin が動作するのでしょうか?(めっちゃ迷う)。何か解決する方法があれば教えてください。

解決方法は?

これは、私がこの問題を解決した非常に簡単な方法です。

  1. SQL Serverを開く
  2. バックアップしたいデータベースを右クリックしてください。
  3. プロパティを選択
  4. パーミッションの選択
  5. データベースの役割を選択します (ローカルまたはクラウド)
  6. の下に、明示的な権限表が表示されます。
  7. を見つける " バックアップデータベース " 許可をクリックし、許可を付与します。

あなたの問題は解決されました。