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

ストアドプロシージャの内容への読み取り専用アクセス

    VIEW DEFINITIONを付与できます これらのプロシージャに対する特権。
    こちら を参照してください。 この特権が何をするかについて。

    VIEW DEFINITIONを適用できます さまざまなスコープで:

    • サーバー
    • データベース
    • スキーム
    • 個々のエンティティ(例:プロシージャ、関数、ビュー)

    クエリを使用して、多くのプロシージャのスクリプトを生成することもできます。
    したがって、ユーザーがBobの場合 :

    SELECT N'GRANT VIEW DEFINITION ON '
        + QUOTENAME(SPECIFIC_SCHEMA)
        + N'.'
        + QUOTENAME(SPECIFIC_NAME)
        + N' TO Bob;'
    FROM INFORMATION_SCHEMA.ROUTINES
    WHERE ROUTINE_TYPE = 'PROCEDURE';
    

    これにより、次のようなものが得られ、実行できます:

    GRANT VIEW DEFINITION ON [dbo].[aspnet_RegisterSchemaVersion] TO Bob;
    GRANT VIEW DEFINITION ON [dbo].[aspnet_CheckSchemaVersion] TO Bob;
    GRANT VIEW DEFINITION ON [dbo].[aspnet_Applications_CreateApplication] TO Bob;
    ...
    


    1. MySQLで英数字のみを含む行のみを選択します

    2. ID生成にPostgreSQLSERIALを使用するようにSQLAlchemyを設定します

    3. xmlagg関数を使用したSQL複数SELECTクエリ-データが必要な方法でプルされていない

    4. 3つのテーブルからのMySQLデータ抽出-結合と最大