SQL Server 2000 には、システム ビューではなくユーザー ビューを取得する sysobjects クエリはありますか?
-
09-06-2019 - |
質問
そのようなクエリが存在すると仮定して、助けていただければ幸いです。
データベース内のユーザーテーブルとビューに対する「選択」権限と「参照」権限を付与する権限スクリプトを開発しようとしています。私の希望は、そのようなセット内の各要素に対して「grant」コマンドを実行することで、新しいテーブルやビューがデータベースに追加されたときにアクセス許可を最新の状態に維持することが容易になることです。
解決
select * from information_schema.tables
WHERE OBJECTPROPERTY(OBJECT_ID(table_name),'IsMSShipped') =0
dt_properties とシステム テーブルは除外されます
追加
where table_type = 'view'
眺めだけが欲しいなら
他のヒント
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 = 拡張ストアド プロシージャ
可能な値は次のとおりです。 タイプ:
- 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
select * from information_schema.tables
where table_type = 'view'
所属していません StackOverflow