「バルク」を使用してSQLServer2012に画像を挿入しようとしていますが、次のようなエラーメッセージが表示されます。
メッセージ4834、レベル16、状態1、行2バルクロードステートメントを使用する権限がありません。
「sysadmin」アクセス権があります。
「バルク」を使用してSQLServer2012に画像を挿入しようとしていますが、次のようなエラーメッセージが表示されます。
メッセージ4834、レベル16、状態1、行2バルクロードステートメントを使用する権限がありません。
「sysadmin」アクセス権があります。
試してみてくださいGRANT ADMINISTER BULK OPERATIONS TO [server_login]
。これはサーバーレベルの権限であり、データベースレベルではありません。これにより、過去の私にとって同様の問題が修正されました(私が信じているOPENROWSETを使用)。
これを試して:
USE master;
GO;
GRANT ADMINISTER BULK OPERATIONS TO shira;
受け入れられた回答またはこれら2つの解決策のいずれかは、Windowsでのみ機能することに注意してください。
GRANT ADMINISTER BULK OPERATIONS TO [login_name];
-- OR
ALTER SERVER ROLE [bulkadmin] ADD MEMBER [login_name];
Linuxマシンに基づくSQLServerでそれらのいずれかを実行すると、次のエラーが発生します。
Msg 16202, Level 15, State 1, Line 1
Keyword or statement option 'bulkadmin' is not supported on the 'Linux' platform.
Msg 16202, Level 15, State 3, Line 1
Keyword or statement option 'ADMINISTER BULK OPERATIONS' is not supported on the 'Linux' platform.
ドキュメントを確認してください。
INSERTおよびADMINISTERBULKOPERATIONS権限が必要です。Azure SQL Databaseでは、INSERTおよびADMINISTER DATABASEBULKOPERATIONSアクセス許可が必要です。ADMINISTER BULK OPERATIONS権限またはbulkadminロールは、Linux上のSQLServerではサポートされていません。Linux上のSQLServerの一括挿入を実行できるのは、システム管理者だけです。
Linux用のソリューション
ALTER SERVER ROLE [sysadmin] ADD MEMBER [login_name];
インポートするファイルを読み取る権限がサービスアカウントにない場合も、SQLServerはこのエラーを返すことがあります。サービスアカウントにファイルの場所への読み取りアクセス権があることを確認してください。例えば:
icacls D:\ImportFiles /Grant "NT Service\MSSQLServer":(OI)(CI)R
「アクセス権がないため、ファイルを一括ロードできません」というエラーが表示された場合
まず、指定したパスとファイル名が正しいことを確認します。
次に、bulkadminロールをユーザーに付与してみてください。これを行うには、次の手順に従います。-[オブジェクトエクスプローラー]->[セキュリティ]->[ログイン]->ユーザーを選択します(右クリック)->[プロパティ]->[サーバーの役割]->[bulkadmin]チェックボックスをオンにします->[OK]。
これは私のために働いた。
マスターGOを使用する
ALTERサーバーの役割[bulkadmin]ADDMEMBER[ユーザー名]GOコマンドがいくつかのコマンドパラメーターを試しても失敗しました
master..sp_addsrvrolemember @loginame = N'username'、@ rolename =N'bulkadmin'GOコマンドが成功しました。