5

そのようなクエリが存在すると仮定すると、助けていただければ幸いです。

データベース内のユーザー テーブルとビューに対する "select" および "references" 権限を付与する権限スクリプトを開発しようとしています。このようなセットの各要素に対して「grant」コマンドを実行することで、新しいテーブルやビューがデータベースに追加されたときにアクセス許可を最新に保つことが容易になることを願っています。

4

3 に答える 3

6
select * from information_schema.tables
WHERE OBJECTPROPERTY(OBJECT_ID(table_name),'IsMSShipped') =0 

dt_properties とシステム テーブルを除外します

追加

where table_type = 'view' 

ビューだけが必要な場合

于 2008-08-28T20:11:35.087 に答える
2
SELECT
    *
FROM
    sysobjects
WHERE
    xtype = 'V' AND
    type = 'V' AND
    category = 0

xtypeの可能な値のリストは次のとおりです。

  • C = CHECK 制約
  • D = デフォルトまたは DEFAULT 制約
  • F = FOREIGN KEY 制約
  • L = ログ
  • P = ストアド プロシージャ
  • PK = PRIMARY KEY 制約 (タイプは K)
  • RF = レプリケーション フィルター ストアド プロシージャ
  • S = システム テーブル
  • TR = トリガー
  • U = ユーザー テーブル
  • UQ = UNIQUE 制約 (型は K)
  • V = ビュー
  • X = 拡張ストアド プロシージャ

typeの可能な値は次のとおりです。

  • C = CHECK 制約
  • D = デフォルトまたは DEFAULT 制約
  • F = FOREIGN KEY 制約
  • FN = スカラー関数
  • IF = インライン テーブル関数
  • K = PRIMARY KEY または UNIQUE 制約
  • L = ログ
  • P = ストアド プロシージャ
  • R = ルール
  • RF = レプリケーション フィルター ストアド プロシージャ
  • S = システム テーブル
  • TF = テーブル関数
  • TR = トリガー
  • U = ユーザー テーブル
  • V = ビュー
  • X = 拡張ストアド プロシージャ

最後に、カテゴリフィールドは、さまざまな種類のオブジェクトに基づいてグループ化されているように見えます。返された結果セットを分析した後、システム ビューはカテゴリ= 2 を持っているように見えますが、すべてのユーザー ビューはカテゴリ= 0 を持っています。

詳細については、http://msdn.microsoft.com/en-us/library/aa260447 (SQL.80).aspx をご覧ください。

于 2008-08-28T20:24:08.973 に答える
0
select * from information_schema.tables
where table_type = 'view'
于 2008-08-28T20:06:37.300 に答える