2008-08-28 4 views
5

En supposant qu'une telle requête existe, j'apprécierais grandement l'aide.Dans SQL Server 2000, existe-t-il une requête sysobjects qui récupère les vues utilisateur et non les vues système?

Je suis en train de développer un script d'autorisations qui accorde « sélectionner » et autorisations « références » sur les tables utilisateur et des vues dans une base de données. Mon espoir est que l'exécution des commandes "grant" sur chaque élément dans un tel ensemble, il sera plus facile de garder les autorisations actuelles lorsque de nouvelles tables et vues sont ajoutées à la base de données.

Répondre

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

exclura dt_properties et tables système

ajouter

where table_type = 'view' 

si vous voulez juste la vue

0
select * from information_schema.tables 
where table_type = 'view' 
+0

Retours sysconstraints et syssegments qui ne sont pas vues par l'utilisateur. – jumxozizi

2
SELECT 
    * 
FROM 
    sysobjects 
WHERE 
    xtype = 'V' AND 
    type = 'V' AND 
    category = 0 

Voici une liste des valeurs possibles pour xtype:

  • C = contrainte VERIFIER
  • D = défaut ou contrainte DEFAULT
  • F = FOREIGN KEY contrainte
  • L = Log
  • P = Procédure stockée
  • PK = contrainte PRIMARY KEY (le type est K)
  • RF = procédure stockée par filtre de réplication
  • S = Table système
  • TR = Trigger
  • U = utilisateur Table
  • UQ = UNIQUE (type est K)
  • V = Voir
  • X = procédure stockée étendue

Voici la valeurs possibles pour type:

  • C = Contrainte de vérification
  • D = défaut ou DEFAULT contrainte
  • F = contrainte FOREIGN KEY
  • FN = fonction scalaire
  • IF = inline table fonction
  • K = PRIMARY KEY ou UNIQUE
  • L = Se connecter
  • P = procédure stockée
  • R = règle
  • RF = filtre de réplication procédure stockée
  • S = table système
  • TF = Table fonction
  • TR = Trigger
  • U = tableau utilisateur
  • V = Voir
  • X = procédure stockée étendue

Enfin, le catégorie Ce champ ressemble à des groupes basés sur différents types d'objets.Après avoir analysé le jeu de résultats de retour, les vues du système semblent avoir une catégorie = 2, alors que toutes les vues utilisateur ont une catégorie = 0. J'espère que cela aide.

Pour plus d'informations, visitez http://msdn.microsoft.com/en-us/library/aa260447(SQL.80).aspx

Questions connexes