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

特定のテーブルからの削除を拒否できますか?

    絶対に!

    DENY DELETE ON (YourTableNameHere) TO YourUserNameHere
    

    すばらしい広範なMSDNBooksOnlineドキュメント を参照してください。 詳細については!

    DELETEを拒否する場合 すべての許可 データベース内のテーブルでは、次のものを使用できます。

    DENY DELETE TO YourUserNameHere
    

    または、テーブルがスキーマにグループ化されるようにデータベースを構造化した場合 、次に、特定のスキーマからのユーザーを拒否することもできます。

    90個のテーブルを個別のスキーマ(または2つ、3つのスキーマ)にグループ化していない場合、簡単で魔法のような方法はありません 一度に90個のテーブルに権限を適用します。 すべてのテーブルのいずれかです 、特定のスキーマ、またはDENYごとの特定のデータベースオブジェクト(テーブルなど) ステートメント。

    更新: いつでもシステムカタログビューを使用して、これらのDENYを生成できます。 あなたのためのステートメント、そしてあなたが必要とするものを使用してください:

    SELECT 
        'DENY DELETE ON ' + t.NAME + ' TO (youruser)'
    FROM sys.tables t
    

    これにより、出力として(SQL Server Management Studioなどで)DELETEを拒否するステートメントのリストが生成されます。 ユーザーからの許可。それらの行をテキストエディタにコピーし、不要な行を削除します。これで、DENYの長いリストができました。 ステートメント!




    1. SQLiteクエリ結果で文字列を一重引用符で囲みます

    2. caseステートメントでトリガーを作成する

    3. ユーザー名がphp経由でmysqlテーブルに存在するかどうかを確認しますか?

    4. アンダースコアがOracleのような句で機能していません