- PR -

BULK INSERTについて(2)

1
投稿者投稿内容
のりこ
会議室デビュー日: 2005/05/31
投稿数: 17
投稿日時: 2005-06-09 12:01
お世話になっております。
先の質問に関連してなのですが、
DB接続の際のUIDがDBのオーナーでなかった場合、
BULK INSERTは出来ないのでしょうか?
テーブルのオーナーじゃない人がファイルを一括でインポートする方法はありませんか?
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2005-06-09 12:38
引用:

DB接続の際のUIDがDBのオーナーでなかった場合、
BULK INSERTは出来ないのでしょうか?
テーブルのオーナーじゃない人がファイルを一括でインポートする方法はありませんか?


データベースが何か分からないのでナンですが、
普通は、そのデータベースに対して権限の無いユーザは何も出来ません。
(ここらへん、セキュリティとかの関係)
逆に、そのデータベースやテーブルに対して権限さえ作ってあればINSERTだろうがDROPだろうが出来るはずです。

(てか、個人の伝言板じゃないんだから、前提くらいしっかり書くべきじゃないかな?以前のスレの続きならリンクするとか。)
のりこ
会議室デビュー日: 2005/05/31
投稿数: 17
投稿日時: 2005-06-09 13:08
すみません。
連続で書いたもんで・・・
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=21923&forum=26&0
が前スレです。

DBサーバーはSQLサーバー2000で、
言語はASP.NETです。

で、権限ですが、INSERTとかは出来るんですが、
「BULK INSERT」が出来ないです。(エラーとなります)
TLC
大ベテラン
会議室デビュー日: 2005/05/31
投稿数: 152
お住まい・勤務地: 東京都
投稿日時: 2005-06-10 09:27
引用:

のりこさんの書き込み (2005-06-09 12:01) より:

DB接続の際のUIDがDBのオーナーでなかった場合、
BULK INSERTは出来ないのでしょうか?




BULK INSERT/bcp などの一括転送機能は,

・入出力対象になるデータベースのオーナーと同格の権限
・BULK ADMIN 固定サーバーロール

が必要になります。
(ただし,BULK ADMINがなくても動いてしまう場合があります)

一括操作は,データベース製品間のデータのやり取りや,保守管理をメインのシナリオとしてデザインされていると受け取れますので,
基本的に高い権限者にしか実行させないこと望ましいと思います。

オーナー以外に一括挿入させるためのシナリオとはどのようなものでしょうか?

ちなみに,前の方の回答も書きますと,

 BULK INSERT [DB名].[dbo].[テーブル名] ・・・

となります。おそらく権限周りの問題に気づかれたのでしょうが。
のりこ
会議室デビュー日: 2005/05/31
投稿数: 17
投稿日時: 2005-06-10 10:57
ソース内でサーバーロール=System Administoratorにチェックしてあるユーザーで
データベースにログインし、
BULK INSERT文を発行しています。

サーバーロールのBulk Insert Administoratorの説明が
「一括操作を実行できません」となっているのが気になります。
SQLServer2000では対応していないのでしょうか?
(ちなみに現在120日間の試用期間中です)
いとっと
常連さん
会議室デビュー日: 2005/06/10
投稿数: 33
投稿日時: 2005-06-10 11:36
exec sp_dboption N'データベース名', N'bulkcopy'

を実行して設定を確認してみてはいかがでしょうか?
一括コピーがオフになっている場合は

sp_dboption N'データベース名', N'bulkcopy', N'true'

で設定変更を行う事が出来ます。
1

スキルアップ/キャリアアップ(JOB@IT)