Bonjour,
est-ce que vous avez deja créé un script pour supprimer un user avec tous ces objects?
Merci a tous,
Dnboa
Bonjour,
est-ce que vous avez deja créé un script pour supprimer un user avec tous ces objects?
Merci a tous,
Dnboa
Que voulez vous dire supprimer un "user" avec tous ses objets ? Par défaut un utilisateur ne possède aucun objet....
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Bonjour,
J'aimerais que tous les objets créés par l'user/login TOTO soient supprimés si l'user TOTO est supprimé.
Merci a vous,
dnboa
Le mode DROP CASCADE disponible dans certains SGBDR n'existe pas dans SQL Server pour des raisons de sécurité. Pour ces mêmes raisons il n'est pas souhaitable de supprimer l'utilisateur si celui-ci a des privilèges sur des objets qu'il n'a pas créé et enfin, ce n'est pas parce que vous supprimez l’utilisateur SQL que son compte de connexion va être supprimé lui aussi....
Vous devez donc trouver vous même, tous les objets créés par ce propriétaire.
Voici la requête pour ce faire
A +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 WITH T AS (SELECT principal_id AS P FROM sys.database_principals WHERE name = 'TOTO') SELECT name, type_desc FROM sys.objects WHERE principal_id IN (SELECT P FROM T) UNION ALL SELECT o.name, type_desc FROM sys.objects AS o JOIN sys.schemas AS s ON o.schema_id = s.schema_id WHERE o.principal_id IS NULL AND s.principal_id IN (SELECT P FROM T) UNION ALL SELECT name, 'SCHEMA' FROM sys.schemas AS s WHERE principal_id IN (SELECT P FROM T);
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
merci! je vais essayer de retrouver tous les objets.
Voici les commandes à passer et dans l'ordre :
A +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 WITH T AS (SELECT principal_id AS P FROM sys.database_principals WHERE name = 'TOTO'), T_DROP AS ( SELECT 1 AS ORDRE1, CASE type_desc WHEN 'FOREIGN_KEY_CONSTRAINT' THEN 0 WHEN 'VIEW' THEN 1 WHEN 'SQL_STORED_PROCEDURE' THEN 2 WHEN 'AGGREGATE_FUNCTION' THEN 3 WHEN 'CLR_SCALAR_FUNCTION' THEN 4 WHEN 'CLR_STORED_PROCEDURE' THEN 5 WHEN 'CLR_TABLE_VALUED_FUNCTION' THEN 6 WHEN 'CLR_TRIGGER' THEN 7 WHEN 'REPLICATION_FILTER_PROCEDURE' THEN 8 WHEN 'SQL_INLINE_TABLE_VALUED_FUNCTION' THEN 9 WHEN 'SQL_SCALAR_FUNCTION' THEN 10 WHEN 'SQL_TABLE_VALUED_FUNCTION' THEN 11 WHEN 'SYNONYM' THEN 12 WHEN 'SERVICE_QUEUE' THEN 50 WHEN 'USER_TABLE' THEN 51 WHEN 'TABLE_TYPE' THEN 100 WHEN 'PLAN_GUIDE' THEN 101 WHEN 'RULE' THEN 102 WHEN 'SEQUENCE_OBJECT' THEN 103 WHEN 'DEFAULT_CONSTRAINT' THEN 104 END AS ORDRE2, 'DROP ' + type_desc + '[' + s.name + '].[' + o.name + '];' COLLATE French_CI_AI AS SQL_COMMAND FROM sys.objects AS o JOIN sys.schemas AS s ON o.schema_id = s.schema_id WHERE o.principal_id IN (SELECT P FROM T) UNION ALL SELECT 2 AS ORDRE1, CASE type_desc WHEN 'FOREIGN_KEY_CONSTRAINT' THEN 0 WHEN 'VIEW' THEN 1 WHEN 'SQL_STORED_PROCEDURE' THEN 2 WHEN 'AGGREGATE_FUNCTION' THEN 3 WHEN 'CLR_SCALAR_FUNCTION' THEN 4 WHEN 'CLR_STORED_PROCEDURE' THEN 5 WHEN 'CLR_TABLE_VALUED_FUNCTION' THEN 6 WHEN 'CLR_TRIGGER' THEN 7 WHEN 'REPLICATION_FILTER_PROCEDURE' THEN 8 WHEN 'SQL_INLINE_TABLE_VALUED_FUNCTION' THEN 9 WHEN 'SQL_SCALAR_FUNCTION' THEN 10 WHEN 'SQL_TABLE_VALUED_FUNCTION' THEN 11 WHEN 'SYNONYM' THEN 12 WHEN 'SERVICE_QUEUE' THEN 50 WHEN 'USER_TABLE' THEN 51 WHEN 'TABLE_TYPE' THEN 100 WHEN 'PLAN_GUIDE' THEN 101 WHEN 'RULE' THEN 102 WHEN 'SEQUENCE_OBJECT' THEN 103 WHEN 'DEFAULT_CONSTRAINT' THEN 104 END AS ORDRE2, 'DROP ' + type_desc + '[' + s.name + '].[' + o.name + '];' COLLATE French_CI_AI FROM sys.objects AS o JOIN sys.schemas AS s ON o.schema_id = s.schema_id WHERE o.principal_id IS NULL AND s.principal_id IN (SELECT P FROM T) UNION ALL SELECT 3, 0, 'DROP SCHEMA [' + name + '];' COLLATE French_CI_AI FROM sys.schemas AS s WHERE principal_id IN (SELECT P FROM T) ) SELECT SQL_COMMAND FROM T_DROP ORDER BY ORDRE1, ORDRE2
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Partager