- - PR -
SQLサーバーにデータを一括インポートしたいのですが
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-09 14:22
はじめまして。
いつも参考にさせていただいております。 SQLサーバー2000+ASP.NETで開発しております。 SQLサーバーにデータをインポートするため、以下のように書いたのですが、 「BLUK INSERTステートメントを使用する権限がありません」と出ます。 環境の問題なのか分からず糸口でも分かればと思い書き込みしました。 ささいなことでもいいのでどうかご教授お願いします。 <ソース(Try〜catch文省略)> Dim strIniData As String strIniData = "Data Source=DBSERVER;UID=ID1;PWD=ID1;Initial _ Catalog=sougyodbon;Integrated Security=SSPI" SqlConn = New SqlConnection '' DB接続文字列を設定する SqlConn.ConnectionString = strIniData '' DBオープン SqlConn.Open() '' トランザクション開始 SqlTrans = SqlConn.BeginTransaction() SqlCmd = New SqlCommand '' 実行するSQL文の設定 'SqlCmd.CommandText = "BULK INSERT DB1.dbo.[TAVLE1] FROM 'C:\temp\FILE1" '' コマンドタイプにテキスト(SQL文)を指定 SqlCmd.CommandType = CommandType.Text SqlCmd.Connection = SqlConn SqlCmd.Transaction = SqlTrans '' SQL発行 Dim intCnt As Integer intCnt = SqlCmd.ExecuteScalar() '' トランザクション確定 SqlTrans.Commit() | ||||
|
投稿日時: 2005-06-09 15:52
失礼致します。
---引用--------------------------------------------------------------- SQLサーバー2000+ASP.NETで開発しております。 SQLサーバーにデータをインポートするため、以下のように書いたのですが、 「BLUK INSERTステートメントを使用する権限がありません」と出ます。 ---------------------------------------------------------------------- 文字通り権限がないのでしょうね。 「BULK INSERTコマンド」は、固定サーバーロールの sysadmin または bulkadmin のメンバーでないと実行できません。 ---引用--------------------------------------------------------------- strIniData = "Data Source=DBSERVER;UID=ID1;PWD=ID1;Initial _ Catalog=sougyodbon;Integrated Security=SSPI" ---------------------------------------------------------------------- 上記コードの例で言いますと、ユーザー「ID1」が sysadmin または bulkadminのメンバーでないと想像されます。 適切な権限を与えてあげましょう。 -----参考------------------------------------------------------------ BULK INSERT http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/tsqlref/ts_ba-bz_4fec.asp --------------------------------------------------------------------- | ||||
|
投稿日時: 2005-06-09 17:30
ご返答ありがとうございました。
しかし・・・ 確認したところ、System Administoratorの欄はチェックしてありました、 試しに、BulK Insert Administoratorの欄もチェックしてやってみたのですが、 同様のエラーでした。 気になるのは SQL Server Enterprises Manegerのセキュリティ→ログイン→該当IDのプロパティで サーバーロールのBulK Insert Administoratorを選択すると説明欄が 「一括挿入操作を実行できません」となっています。 ほかの説明欄は「〜を出来ます」となっているのですが・・・ SQLサーバが使用を認めていないとかあるのですかね。。 | ||||
|
投稿日時: 2005-06-09 19:24
禰宜です。
SQLServerのデータベースサービスのアカウントは、どうなっているでしょうか? Windowsのコントロールパネル-管理ツール-サービス内にある、 該当SQLインスタンスのプロパティを見て、 もし、ローカルシステムアカウントになっているなら、 Administratorアカウントに変えてみて下さい。 | ||||
|
投稿日時: 2005-06-10 09:48
お世話になっております。
MSSQLSERVERはAdministratorになっています。 SQLSERVERAGENTもAdministratorになっています。 あとは全てローカルです。 他にAdministoratorにしないといけないものはありますか? | ||||
|
投稿日時: 2005-06-10 12:32
ユーザー、パスワードを指定する場合、Integrated Securityはfalseではないですか?つまりSQLServerの認証を使うのですよね? # 追記 あと、UIDで通ります?MSDNに載ってないですが。User IDだと思うのですけど。 [ メッセージ編集済み 編集者: ya 編集日時 2005-06-10 12:42 ] | ||||
|
投稿日時: 2005-06-10 14:28
ありがとうございました!!
セキュリティの部分をはずしてみたらうまく行きました。 UIDの部分は問題なさそうです。 てか今までinsertとか普通に動いていたのがなぞですが・・ 禰宜さん、yaさん本当にありがとうございました。 | ||||
|
投稿日時: 2005-06-10 19:10
Integrated SecurityがSSPIだったので、Windows認証で別のユーザーでつないでたというオチかと(具体的にはASPNETあたりとかのIISのアカウント)。
MSDNより引用。
|
1