sql >> データベース >  >> RDS >> Sqlserver

古いバージョンのストアド プロシージャを実行している SQL Server

    Stored Proc コードと EDIT2 の下に表示される追加情報に基づく

    <オール>
  1. BULK INSERT が呼び出されています
  2. 「ユーザーには BULK INSERT へのアクセス権がないというエラーが引き続き表示されますが、他のすべてのユーザーには発生したエラーが表示されます」
  3. 特定の T-SQL 関数 (OPENQUERY、OPENROWSET、BULK INSERT など) など) セキュリティの事前検証を行います。ユーザーは、BULK INSERT を実行するために、INSERT および ADMINISTER BULK OPERATIONS 権限を持っている必要があり、場合によっては ALTER TABLE を持っている必要があります。さらに、ユーザー (Windows 認証を使用している場合) または SQL Server サービスの "ログオン" アカウント (SQL Server 認証を使用している場合) の NTFS / Active Directory 権限が検証され、ファイルが読み取り可能であることを確認します。

    事前検証 (または少なくとも私が「事前検証」と呼んでいるもの) は、各行が実行されるときではなく、Stored Proc (または関数など) が呼び出されるときに発生します。この時点でエラーが発生すると、RAISERROR やログ テーブルへの INSERT を含め、Proc 内のコードは実行されません。

    したがって、表示されている動作の原因として最も可能性が高いのは、問題のあるユーザーに、a) 必要な SQL Server 権限の 1 つ以上、b) 適切な NTFS 権限、または c) すべての権限がないことです。

    エラーが BULK INSERT へのアクセス権がないことに関するものであることを考えると、この特定のユーザーには 1 つ以上の SQL Server 権限が欠けていると推測されます。



    1. 外部キーを変更するにはどうすればよいですか?

    2. DateTime2 の後の数値はナノ秒の目的ですか?

    3. PLSQLカーソルの例-明示カーソル、暗黙カーソル、および参照カーソル

    4. SQLAlchemyでPostgresSQLINTERVALを使用すると、期間は動的にDBに保存され、パラメーターではありません。