﻿<?xml version="1.0" encoding="UTF-8"?>
<!--RSS generated by Windows SharePoint Services V3 RSS Generator on 09/09/2010 23:29:24-->
<?xml-stylesheet type="text/xsl" href="/DBA/_layouts/RssXslt.aspx?List=50c7b8ad-a1d7-4857-82d8-613f1b64bd3f" version="1.0"?>
<rss version="2.0">
  <channel>
    <title>DBA : Messages</title>
    <link>http://www.dominiqueverriere.com/DBA/Lists/Billets/AllPosts.aspx</link>
    <description>Flux RSS pour la liste Messages.</description>
    <lastBuildDate>Thu, 09 Sep 2010 21:29:24 GMT</lastBuildDate>
    <generator>Windows SharePoint Services V3 RSS Generator</generator>
    <ttl>60</ttl>
    <image>
      <title>DBA : Messages</title>
      <url>/DBA/_layouts/images/homepage.gif</url>
      <link>http://www.dominiqueverriere.com/DBA/Lists/Billets/AllPosts.aspx</link>
    </image>
    <item>
      <title>Audit des privilèges de sécurité</title>
      <link>http://www.dominiqueverriere.com/DBA/Lists/Billets/ViewPost.aspx?ID=28</link>
      <description><![CDATA[<div><b>Corps:</b> <div class=ExternalClass09B34C6655384796810BF13893EC00E9><p><span style="color:#4f81bd;font-family:Arial;font-size:14pt"><strong>Rappels de base :
</strong></span></p><p><span style="font-family:Arial;font-size:12pt">J'ai déjà évoqué dans mes articles la dyslexie entre connexion et utilisateur, aussi je passe vite sur ces notions :
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">use</span>
			<span style="color:blue">master
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p>
 </p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">if</span>
			<span style="color:gray">EXISTS</span><span style="color:blue">
			</span><span style="color:gray">(</span><span style="color:blue">SELECT</span>
			<span style="color:gray">*</span>
			<span style="color:blue">FROM</span>
			<span style="color:lime">sys</span><span style="color:gray">.</span><span style="color:lime">server_principals</span>
			<span style="color:blue">WHERE</span>
			<span style="color:teal">name</span>
			<span style="color:gray">=</span>
			<span style="color:red">N'DemoEmploye'</span><span style="color:gray">)
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">DROP</span>
			<span style="color:blue">LOGIN</span>
			<span style="color:teal">DemoEmploye
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">GO
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">create</span>
			<span style="color:blue">login</span>
			<span style="color:teal">DemoEmploye</span>
			<span style="color:blue">with</span>
			<span style="color:blue">password</span>
			<span style="color:gray">=</span>
			<span style="color:red">'Demo'</span><span style="color:gray">,</span><span style="color:blue">CHECK_POLICY</span>
			<span style="color:gray">=</span><span style="color:blue">OFF</span><span style="color:gray">,</span><span style="color:blue">CHECK_EXPIRATION</span>
			<span style="color:gray">=</span><span style="color:blue">OFF
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">if</span>
			<span style="color:gray">EXISTS</span><span style="color:blue">
			</span><span style="color:gray">(</span><span style="color:blue">SELECT</span>
			<span style="color:gray">*</span>
			<span style="color:blue">FROM</span>
			<span style="color:lime">sys</span><span style="color:gray">.</span><span style="color:lime">server_principals</span>
			<span style="color:blue">WHERE</span>
			<span style="color:teal">name</span>
			<span style="color:gray">=</span>
			<span style="color:red">N'DemoManager'</span><span style="color:gray">)
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">DROP</span>
			<span style="color:blue">LOGIN</span>
			<span style="color:teal">DemoManager
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">GO
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">create</span>
			<span style="color:blue">login</span>
			<span style="color:teal">DemoManager</span>
			<span style="color:blue">with</span>
			<span style="color:blue">password</span>
			<span style="color:gray">=</span>
			<span style="color:red">'Demo'</span><span style="color:gray">,</span><span style="color:blue">CHECK_POLICY</span>
			<span style="color:gray">=</span><span style="color:blue">OFF</span><span style="color:gray">,</span><span style="color:blue">CHECK_EXPIRATION</span>
			<span style="color:gray">=</span><span style="color:blue">OFF
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">Je crée une base pour ce post et deux connexions.
</span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">if</span>
			<span style="color:gray">exists</span><span style="color:blue">
			</span><span style="color:gray">(</span><span style="color:blue">select</span> 1 <span style="color:blue">from</span>
			<span style="color:lime">sys</span><span style="color:gray">.</span><span style="color:lime">databases</span>
			<span style="color:blue">where</span>
			<span style="color:teal">name</span>
			<span style="color:gray">=</span>
			<span style="color:red">'DemoSecurite'</span><span style="color:gray">)
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">drop</span>
			<span style="color:blue">database</span>
			<span style="color:teal">DemoSecurite
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">create</span>
			<span style="color:blue">database</span>
			<span style="color:teal">DemoSecurite
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">use</span>
			<span style="color:teal">DemoSecurite
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><span style="font-family:Arial;font-size:12pt">Pour cette démo, deux tables suffiront :
</span></p><p>
 </p><p><span style="color:green;font-family:Courier New;font-size:10pt">-- Créons deux tables
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">create</span>
			<span style="color:blue">table</span>
			<span style="color:teal">DonneesEmployes</span><span style="color:blue">
			</span><span style="color:gray">(</span><span style="color:teal">Cle</span>
			<span style="color:blue">int</span>
			<span style="color:blue">identity</span><span style="color:gray">(</span>1<span style="color:gray">,</span>1<span style="color:gray">)</span>
			<span style="color:blue">primary</span>
			<span style="color:blue">key</span><span style="color:gray">,</span>
			<span style="color:teal">Valeur</span>
			<span style="color:blue">varchar</span><span style="color:gray">(</span>50<span style="color:gray">))
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">create</span>
			<span style="color:blue">table</span>
			<span style="color:teal">DonneesManagers</span><span style="color:blue">
			</span><span style="color:gray">(</span><span style="color:teal">Cle</span>
			<span style="color:blue">int</span>
			<span style="color:blue">identity</span><span style="color:gray">(</span>1<span style="color:gray">,</span>1<span style="color:gray">)</span>
			<span style="color:blue">primary</span>
			<span style="color:blue">key</span><span style="color:gray">,</span>
			<span style="color:teal">Valeur</span>
			<span style="color:blue">varchar</span><span style="color:gray">(</span>50<span style="color:gray">))
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">insert</span>
			<span style="color:blue">into</span>
			<span style="color:teal">DonneesEmployes</span><span style="color:blue">
			</span><span style="color:gray">(</span><span style="color:teal">Valeur</span><span style="color:gray">)</span>
			<span style="color:blue">values </span><span style="color:gray">(</span><span style="color:red">'Voici un employé PAUL'</span><span style="color:gray">),(</span><span style="color:red">'Voici un employé PIERRE'</span><span style="color:gray">)
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">insert</span>
			<span style="color:blue">into</span>
			<span style="color:teal">DonneesManagers</span><span style="color:blue">
			</span><span style="color:gray">(</span><span style="color:teal">Valeur</span><span style="color:gray">)</span>
			<span style="color:blue">values </span><span style="color:gray">(</span><span style="color:red">'Voici un manager DOMINIQUE'</span><span style="color:gray">),(</span><span style="color:red">'Voici un manager ISABELLE'</span><span style="color:gray">)
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesEmployes
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesManagers
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><span style="font-family:Arial;font-size:12pt">Je vais créer deux utilisateurs (l'un est un manager, l'autre est un employé)
</span></p><p><span style="color:green;font-family:Courier New;font-size:10pt">-- Il nous faut deux users
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">create</span>
			<span style="color:fuchsia">user</span>
			<span style="color:teal">DemoEmploye</span>
			<span style="color:blue">for</span>
			<span style="color:blue">login</span>
			<span style="color:teal">DemoEmploye
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">create</span>
			<span style="color:fuchsia">user</span>
			<span style="color:teal">DemoManager</span>
			<span style="color:blue">for</span>
			<span style="color:blue">login</span>
			<span style="color:teal">DemoManager
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go</span><span style="font-family:Arial;font-size:12pt">
		</span></p><p><span style="font-family:Arial;font-size:12pt">Vérifions leus accès par défaut :
</span></p><p><span style="color:green;font-family:Courier New;font-size:10pt">--- Accès par défaut 
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">execute</span>
			<span style="color:blue">as</span>
			<span style="color:fuchsia">user</span>
			<span style="color:gray">=</span>
			<span style="color:red">'DemoEmploye'
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:fuchsia">SUSER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomConnexion</span><span style="color:gray">,</span>
			<span style="color:fuchsia">USER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomUtilisateur
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesEmployes
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesManagers
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">revert
</span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go</span><span style="font-family:Arial;font-size:12pt">
		</span></p><p><img src="/DBA/Lists/Photos/052709_1632_Auditdespri1.png" alt=""><span style="font-family:Arial;font-size:12pt">
		</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">Rien pour l'employé…
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">execute</span>
			<span style="color:blue">as</span>
			<span style="color:fuchsia">user</span>
			<span style="color:gray">=</span>
			<span style="color:red">'DemoManager'
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:fuchsia">SUSER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomConnexion</span><span style="color:gray">,</span>
			<span style="color:fuchsia">USER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomUtilisateur
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesEmployes
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesManagers
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">revert
</span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><img src="/DBA/Lists/Photos/052709_1632_Auditdespri2.png" alt=""><span style="color:blue;font-family:Arial;font-size:12pt">
		</span></p><p>
 </p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">Et rien pour le manager …
</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">On pourrait raisonner au niveau des individus, mais, je l'évoque dans mes cours, ce n'est pas une bonne pratique….
</span></p><p>
 </p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">On crée donc des rôles :
</span></p><p><span style="color:green;font-family:Courier New;font-size:10pt">-- Plutôt  que de raisonner au niveau des individus, créons des rôles
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">CREATE</span>
			<span style="color:blue">ROLE</span>
			<span style="color:teal">[RoleManagers]
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">GO
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">EXEC</span>
			<span style="color:maroon">sp_addrolemember</span><span style="color:blue">
			</span><span style="color:red">N'RoleManagers'</span><span style="color:gray">,</span>
			<span style="color:red">N'DemoManager'
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">GO
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">CREATE</span>
			<span style="color:blue">ROLE</span>
			<span style="color:teal">[RoleEmployes]
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">GO
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">EXEC</span>
			<span style="color:maroon">sp_addrolemember</span><span style="color:blue">
			</span><span style="color:red">N'RoleEmployes'</span><span style="color:gray">,</span>
			<span style="color:red">N'DemoEmploye'
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">GO
</span></p><p>
 </p><p><span style="color:green;font-family:Courier New;font-size:10pt">-- Autorisations en lecture
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">GRANT</span>
			<span style="color:blue">SELECT</span>
			<span style="color:blue">ON</span>
			<span style="color:teal">[DonneesEmployes]</span>
			<span style="color:blue">TO</span>
			<span style="color:teal">RoleEmployes
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">GO
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">GRANT</span>
			<span style="color:blue">SELECT</span>
			<span style="color:blue">ON</span>
			<span style="color:teal">[DonneesEmployes]</span>
			<span style="color:blue">TO</span>
			<span style="color:teal">RoleManagers
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">GRANT</span>
			<span style="color:blue">SELECT</span>
			<span style="color:blue">ON</span>
			<span style="color:teal">[DonneesManagers]</span>
			<span style="color:blue">TO</span>
			<span style="color:teal">RoleManagers
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">Que se passe t-il pour notre employé ?
</span></p><p><span style="color:green;font-family:Courier New;font-size:10pt">-- Vérification
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">execute</span>
			<span style="color:blue">as</span>
			<span style="color:fuchsia">user</span>
			<span style="color:gray">=</span>
			<span style="color:red">'DemoEmploye'
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:fuchsia">SUSER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomConnexion</span><span style="color:gray">,</span>
			<span style="color:fuchsia">USER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomUtilisateur
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesEmployes
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesManagers
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">revert
</span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><img src="/DBA/Lists/Photos/052709_1632_Auditdespri3.png" alt=""><span style="color:blue;font-family:Arial;font-size:12pt">
		</span></p><p><span style="font-family:Arial;font-size:12pt">C'est ce que l'on souhaite : pas d'accès aux données des managers…
</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">Et pour notre manager :
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">execute</span>
			<span style="color:blue">as</span>
			<span style="color:fuchsia">user</span>
			<span style="color:gray">=</span>
			<span style="color:red">'DemoManager'
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:fuchsia">SUSER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomConnexion</span><span style="color:gray">,</span>
			<span style="color:fuchsia">USER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomUtilisateur
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesEmployes
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesManagers
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">revert
</span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><img src="/DBA/Lists/Photos/052709_1632_Auditdespri4.png" alt=""><span style="font-family:Arial;font-size:12pt">
		</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">OK : il peut tout voir…
</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">Et si une personne appartient aux deux rôles ?
</span></p><p><span style="color:green;font-family:Courier New;font-size:10pt">-- Que se passe t-il pour un EmployéManager ?
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">if</span>
			<span style="color:gray">EXISTS</span><span style="color:blue">
			</span><span style="color:gray">(</span><span style="color:blue">SELECT</span>
			<span style="color:gray">*</span>
			<span style="color:blue">FROM</span>
			<span style="color:lime">sys</span><span style="color:gray">.</span><span style="color:lime">server_principals</span>
			<span style="color:blue">WHERE</span>
			<span style="color:teal">name</span>
			<span style="color:gray">=</span>
			<span style="color:red">N'DemoEmployeManager'</span><span style="color:gray">)
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">DROP</span>
			<span style="color:blue">LOGIN</span>
			<span style="color:teal">DemoEmployeManager
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">GO
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">create</span>
			<span style="color:blue">login</span>
			<span style="color:teal">DemoEmployeManager</span>
			<span style="color:blue">with</span>
			<span style="color:blue">password</span>
			<span style="color:gray">=</span>
			<span style="color:red">'Demo'</span><span style="color:gray">,</span><span style="color:blue">CHECK_POLICY</span>
			<span style="color:gray">=</span><span style="color:blue">OFF</span><span style="color:gray">,</span><span style="color:blue">CHECK_EXPIRATION</span>
			<span style="color:gray">=</span><span style="color:blue">OFF
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">create</span>
			<span style="color:fuchsia">user</span>
			<span style="color:teal">DemoEmployeManager</span>
			<span style="color:blue">for</span>
			<span style="color:blue">login</span>
			<span style="color:teal">DemoEmployeManager
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">exec</span>
			<span style="color:maroon">sp_addrolemember</span><span style="color:blue">
			</span><span style="color:red">N'RoleManagers'</span><span style="color:gray">,</span>
			<span style="color:red">N'DemoEmployeManager'
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">exec</span>
			<span style="color:maroon">sp_addrolemember</span><span style="color:blue">
			</span><span style="color:red">N'RoleEmployes'</span><span style="color:gray">,</span>
			<span style="color:red">N'DemoEmployeManager'
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">GO
</span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">execute</span>
			<span style="color:blue">as</span>
			<span style="color:fuchsia">user</span>
			<span style="color:gray">=</span>
			<span style="color:red">'DemoEmployeManager'
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:fuchsia">SUSER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomConnexion</span><span style="color:gray">,</span>
			<span style="color:fuchsia">USER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomUtilisateur
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesEmployes
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesManagers
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">revert
</span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go</span><span style="font-family:Arial;font-size:12pt">
		</span></p><p><img src="/DBA/Lists/Photos/052709_1632_Auditdespri5.png" alt=""><span style="font-family:Arial;font-size:12pt">
		</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">Et si on fait une interdiction explicite ?
</span></p><p><span style="color:green;font-family:Courier New;font-size:10pt">-- Maintenant interdisons aux employés de lire les données de managers
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">DENY</span>
			<span style="color:blue">SELECT</span>
			<span style="color:blue">ON</span>
			<span style="color:teal">[dbo]</span><span style="color:gray">.</span><span style="color:teal">[DonneesManagers]</span>
			<span style="color:blue">TO</span>
			<span style="color:teal">[RoleEmployes]
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">GO
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">execute</span>
			<span style="color:blue">as</span>
			<span style="color:fuchsia">user</span>
			<span style="color:gray">=</span>
			<span style="color:red">'DemoEmployeManager'
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:fuchsia">SUSER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomConnexion</span><span style="color:gray">,</span>
			<span style="color:fuchsia">USER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomUtilisateur
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesEmployes
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:gray">*</span>
			<span style="color:blue">from</span>
			<span style="color:teal">DonneesManagers
</span></span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">revert
</span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go</span><span style="font-family:Arial;font-size:12pt">
		</span></p><p><img src="/DBA/Lists/Photos/052709_1632_Auditdespri6.png" alt=""><span style="font-family:Arial;font-size:12pt">
		</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">OK : les interdits l'emportent bien…
</span></p><p>
 </p><p><span style="color:#4f81bd;font-family:Arial;font-size:14pt"><strong>Une vision cumulée des droits ?
</strong></span></p><p><span style="font-family:Arial;font-size:12pt">Cette architecture peut être très complexe, puisqu'un rôle peut inclure des rôles, que l'on peut être owner, que l'on peut donner des privilèges au niveau base, schéma, objet,etc…
</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">Aussi comment être sûr de qui fait quoi ?
</span></p><p><span style="font-family:Arial;font-size:12pt">C'est là que la fonction système </span><span style="color:green;font-family:Courier New;font-size:10pt">fn_my_permissions ( 'EntitéSécurisable' ou NULL , 'ClasseDeSecurite')
</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">intervient…elle donne les privilèges actuels pour la connexion courante
</span></p><p><span style="font-family:Arial;font-size:12pt">Les classes de sécurité les plus courantes étant : SERVER, BASE,OBJECT
</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">Par exemple :
</span></p><p><span style="color:green;font-family:Courier New;font-size:10pt">-- Vision cumuléee des droits :
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">execute</span>
			<span style="color:blue">as</span>
			<span style="color:fuchsia">user</span>
			<span style="color:gray">=</span>
			<span style="color:red">'DemoManager'
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:fuchsia">SUSER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomConnexion</span><span style="color:gray">,</span>
			<span style="color:fuchsia">USER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomUtilisateur
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">SELECT</span>
			<span style="color:gray">*</span>
			<span style="color:blue">FROM</span>
			<span style="color:lime">fn_my_permissions</span><span style="color:gray">(</span><span style="color:red">'dbo.DonneesManagers'</span><span style="color:gray">,</span>
			<span style="color:red">'OBJECT'</span><span style="color:gray">)</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt">
			<span style="color:blue">ORDER</span>
			<span style="color:blue">BY</span>
			<span style="color:teal">subentity_name</span><span style="color:gray">,</span>
			<span style="color:teal">permission_name</span>
			<span style="color:gray">;</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">SELECT</span>
			<span style="color:gray">*</span>
			<span style="color:blue">FROM</span>
			<span style="color:lime">fn_my_permissions</span><span style="color:gray">(</span><span style="color:red">'dbo.DonneesEmployes'</span><span style="color:gray">,</span>
			<span style="color:red">'OBJECT'</span><span style="color:gray">)</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt">
			<span style="color:blue">ORDER</span>
			<span style="color:blue">BY</span>
			<span style="color:teal">subentity_name</span><span style="color:gray">,</span>
			<span style="color:teal">permission_name</span>
			<span style="color:gray">;</span>
		</span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">revert
</span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><span style="font-family:Arial;font-size:12pt">
			<img src="/DBA/Lists/Photos/052709_1632_Auditdespri7.png" alt="">
		</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">Effectivement, je viens de dire que l'on cumule les privilèges sauf si interdiction explicite.
</span></p><p><span style="font-family:Arial;font-size:12pt">Ce que l'on vérifie par 
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">execute</span>
			<span style="color:blue">as</span>
			<span style="color:fuchsia">user</span>
			<span style="color:gray">=</span>
			<span style="color:red">'DemoEmployeManager'
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">select</span>
			<span style="color:fuchsia">SUSER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomConnexion</span><span style="color:gray">,</span>
			<span style="color:fuchsia">USER_NAME</span><span style="color:gray">()</span>
			<span style="color:blue">as</span>
			<span style="color:teal">NomUtilisateur
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">SELECT</span>
			<span style="color:gray">*</span>
			<span style="color:blue">FROM</span>
			<span style="color:lime">fn_my_permissions</span><span style="color:gray">(</span><span style="color:red">'dbo.DonneesManagers'</span><span style="color:gray">,</span>
			<span style="color:red">'OBJECT'</span><span style="color:gray">)</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt">
			<span style="color:blue">ORDER</span>
			<span style="color:blue">BY</span>
			<span style="color:teal">subentity_name</span><span style="color:gray">,</span>
			<span style="color:teal">permission_name</span>
			<span style="color:gray">;</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">SELECT</span>
			<span style="color:gray">*</span>
			<span style="color:blue">FROM</span>
			<span style="color:lime">fn_my_permissions</span><span style="color:gray">(</span><span style="color:red">'dbo.DonneesEmployes'</span><span style="color:gray">,</span>
			<span style="color:red">'OBJECT'</span><span style="color:gray">)</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt">
			<span style="color:blue">ORDER</span>
			<span style="color:blue">BY</span>
			<span style="color:teal">subentity_name</span><span style="color:gray">,</span>
			<span style="color:teal">permission_name</span>
			<span style="color:gray">;</span>
		</span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">revert
</span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">go
</span></p><p><img src="/DBA/Lists/Photos/052709_1632_Auditdespri8.png" alt=""><span style="font-family:Arial;font-size:12pt">
		</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">Il ne peut pas de faire de select sur les employés…
</span></p><p>
 </p><p>
 </p><p><span style="color:#4f81bd;font-family:Arial;font-size:14pt"><strong>Script de vision consolidée :
</strong></span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">declare</span>
			<span style="color:teal">@tATraiter</span>
			<span style="color:blue">table </span><span style="color:gray">(</span><span style="color:teal">NoATraiter</span>
			<span style="color:blue">int</span>
			<span style="color:blue">identity</span><span style="color:gray">(</span>1<span style="color:gray">,</span>1<span style="color:gray">),</span>
			<span style="color:teal">NomTable</span>
			<span style="color:blue">sysname</span><span style="color:gray">)
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">declare</span>
			<span style="color:teal">@NomConnexion</span>
			<span style="color:blue">sysname</span><span style="color:gray">,</span><span style="color:teal">@NomTable</span>
			<span style="color:blue">sysname</span><span style="color:gray">,</span><span style="color:teal">@NoATraiter</span>
			<span style="color:blue">int</span><span style="color:gray">,
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:teal">@NomEntite</span>
			<span style="color:blue">sysname</span><span style="color:gray">,</span><span style="color:teal">@NomSousEntite</span>
			<span style="color:blue">sysname</span><span style="color:gray">,</span><span style="color:teal">@Droit</span>
			<span style="color:blue">sysname
</span></span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">set</span>
			<span style="color:blue">nocount</span>
			<span style="color:blue">on
</span></span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:green">-- Cette table nous servira à parcourir les tables
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">insert</span>
			<span style="color:blue">into</span>
			<span style="color:teal">@tATraiter</span><span style="color:gray">(</span><span style="color:teal">NomTable</span><span style="color:gray">)
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">select</span>
			<span style="color:red">'['</span>
			<span style="color:gray">+</span>
			<span style="color:teal">TABLE_SCHEMA</span>
			<span style="color:gray">+</span>
			<span style="color:red">'].['</span>
			<span style="color:gray">+</span>
			<span style="color:teal">table_name</span>
			<span style="color:gray">+</span>
			<span style="color:red">']'</span>
			<span style="color:blue">from</span>
			<span style="color:lime">INFORMATION_SCHEMA</span><span style="color:gray">.</span><span style="color:lime">TABLES
</span></span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">set</span>
			<span style="color:teal">@NomConnexion</span>
			<span style="color:gray">=</span>
			<span style="color:red">'sa'</span>
			<span style="color:green">-- 'DemoManager'
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">print</span>
			<span style="color:red">'Connexion auditée :'</span>
			<span style="color:gray">+</span>
			<span style="color:teal">@NomConnexion
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">print</span>
			<span style="color:fuchsia">replicate</span><span style="color:blue">
			</span><span style="color:gray">(</span><span style="color:red">'-'</span><span style="color:gray">,</span>30<span style="color:gray">)
</span></span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:green">-- On change d'identité
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">execute</span>
			<span style="color:blue">as</span>
			<span style="color:blue">login</span>
			<span style="color:gray">=</span>
			<span style="color:teal">@NomConnexion
</span></span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:green">-- Etude des privilèges sur le serveur
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">print</span>
			<span style="color:red">'Privilèges sur le serveur SQL :'</span>
			<span style="color:gray">+</span>
			<span style="color:fuchsia">@@servername
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">print</span>
			<span style="color:fuchsia">replicate</span><span style="color:blue">
			</span><span style="color:gray">(</span><span style="color:red">'-'</span><span style="color:gray">,</span>60<span style="color:gray">)
</span></span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">DECLARE</span>
			<span style="color:teal">crDroits</span>
			<span style="color:blue">CURSOR</span>
			<span style="color:blue">READ_ONLY</span>
			<span style="color:blue">for
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">SELECT</span>
			<span style="color:gray">*</span>
			<span style="color:blue">FROM</span>
			<span style="color:lime">fn_my_permissions</span><span style="color:gray">(null,</span>
			<span style="color:red">'SERVER'</span><span style="color:gray">)</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">ORDER</span>
			<span style="color:blue">BY</span>
			<span style="color:teal">subentity_name</span><span style="color:gray">,</span>
			<span style="color:teal">permission_name</span>
			<span style="color:gray">;</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">open</span>
			<span style="color:teal">crDroits
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">while</span> 1<span style="color:gray">=</span>1
</span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">begin
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">            <span style="color:blue">fetch</span>
			<span style="color:teal">crDroits</span>
			<span style="color:blue">into</span>
			<span style="color:teal">@NomEntite</span><span style="color:gray">,</span><span style="color:teal">@NomSousEntite</span><span style="color:gray">,</span><span style="color:teal">@Droit
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">            <span style="color:blue">if</span>
			<span style="color:fuchsia">@@FETCH_STATUS</span>
			<span style="color:gray">!=</span> 0
</span></p><p><span style="font-family:Courier New;font-size:10pt">                <span style="color:blue">break
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">            <span style="color:blue">print</span>
			<span style="color:fuchsia">replicate</span><span style="color:gray">(</span><span style="color:red">' '</span><span style="color:gray">,</span>8<span style="color:gray">)+</span><span style="color:teal">@Droit</span>
			<span style="color:gray">+</span>
			<span style="color:red">' '</span>
			<span style="color:gray">+</span>
			<span style="color:teal">@NomSousEntite
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">end
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">close</span>
			<span style="color:teal">crDroits
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">deallocate</span>     <span style="color:teal">crDroits</span>        
</span></p><p>
 </p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:green">-- Etude des privilèges sur la base
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">print</span>
			<span style="color:red">'Privilèges sur la base :'</span>
			<span style="color:gray">+</span>
			<span style="color:fuchsia">db_name</span><span style="color:gray">()
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">print</span>
			<span style="color:fuchsia">replicate</span><span style="color:blue">
			</span><span style="color:gray">(</span><span style="color:red">'-'</span><span style="color:gray">,</span>60<span style="color:gray">)
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">DECLARE</span>
			<span style="color:teal">crDroits</span>
			<span style="color:blue">CURSOR</span>
			<span style="color:blue">READ_ONLY</span>
			<span style="color:blue">for
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">SELECT</span>
			<span style="color:gray">*</span>
			<span style="color:blue">FROM</span>
			<span style="color:lime">fn_my_permissions</span><span style="color:gray">(null,</span>
			<span style="color:red">'BASE'</span><span style="color:gray">)</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">ORDER</span>
			<span style="color:blue">BY</span>
			<span style="color:teal">subentity_name</span><span style="color:gray">,</span>
			<span style="color:teal">permission_name</span>
			<span style="color:gray">;</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">open</span>
			<span style="color:teal">crDroits
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">while</span> 1<span style="color:gray">=</span>1
</span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">begin
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">            <span style="color:blue">fetch</span>
			<span style="color:teal">crDroits</span>
			<span style="color:blue">into</span>
			<span style="color:teal">@NomEntite</span><span style="color:gray">,</span><span style="color:teal">@NomSousEntite</span><span style="color:gray">,</span><span style="color:teal">@Droit
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">            <span style="color:blue">if</span>
			<span style="color:fuchsia">@@FETCH_STATUS</span>
			<span style="color:gray">!=</span> 0
</span></p><p><span style="font-family:Courier New;font-size:10pt">                <span style="color:blue">break
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">            <span style="color:blue">print</span>
			<span style="color:fuchsia">replicate</span><span style="color:gray">(</span><span style="color:red">' '</span><span style="color:gray">,</span>8<span style="color:gray">)+</span><span style="color:teal">@Droit</span>
			<span style="color:gray">+</span>
			<span style="color:red">' '</span>
			<span style="color:gray">+</span>
			<span style="color:teal">@NomSousEntite
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">end
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">close</span>
			<span style="color:teal">crDroits
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">deallocate</span>     <span style="color:teal">crDroits</span>        
</span></p><p>
 </p><p>
 </p><p>
 </p><p><span style="color:green;font-family:Courier New;font-size:10pt">-- Etude des privilèges sur les tables
</span></p><p><span style="font-family:Courier New;font-size:10pt"><span style="color:blue">while</span> 1<span style="color:gray">=</span>1
</span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">begin
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">set</span>
			<span style="color:teal">@NoATraiter</span>
			<span style="color:gray">=</span>
			<span style="color:gray">null
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">select</span>
			<span style="color:blue">top</span> 1 <span style="color:teal">@NoATraiter</span><span style="color:gray">=</span><span style="color:teal">NoATraiter</span><span style="color:gray">,</span><span style="color:teal">@NomTable</span><span style="color:gray">=</span><span style="color:teal">NomTable</span>
			<span style="color:blue">from</span>
			<span style="color:teal">@tATraiter
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">if</span>
			<span style="color:teal">@NoATraiter</span>
			<span style="color:gray">is</span>
			<span style="color:gray">null</span>
			<span style="color:blue">break
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">print</span>
			<span style="color:fuchsia">replicate</span><span style="color:gray">(</span><span style="color:red">' '</span><span style="color:gray">,</span>4<span style="color:gray">)+</span><span style="color:red">'Privilèges sur la table :'</span>
			<span style="color:gray">+</span>
			<span style="color:teal">@NomTable
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">DECLARE</span>
			<span style="color:teal">crDroits</span>
			<span style="color:blue">CURSOR</span>
			<span style="color:blue">READ_ONLY</span>
			<span style="color:blue">for
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">SELECT</span>
			<span style="color:gray">*</span>
			<span style="color:blue">FROM</span>
			<span style="color:lime">fn_my_permissions</span><span style="color:gray">(</span><span style="color:teal">@NomTable</span><span style="color:gray">,</span>
			<span style="color:red">'OBJECT'</span><span style="color:gray">)</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt">            <span style="color:blue">ORDER</span>
			<span style="color:blue">BY</span>
			<span style="color:teal">subentity_name</span><span style="color:gray">,</span>
			<span style="color:teal">permission_name</span>
			<span style="color:gray">;</span>
		</span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">open</span>
			<span style="color:teal">crDroits
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">while</span> 1<span style="color:gray">=</span>1
</span></p><p><span style="font-family:Courier New;font-size:10pt">            <span style="color:blue">begin
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">                <span style="color:blue">fetch</span>
			<span style="color:teal">crDroits</span>
			<span style="color:blue">into</span>
			<span style="color:teal">@NomEntite</span><span style="color:gray">,</span><span style="color:teal">@NomSousEntite</span><span style="color:gray">,</span><span style="color:teal">@Droit
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">                <span style="color:blue">if</span>
			<span style="color:fuchsia">@@FETCH_STATUS</span>
			<span style="color:gray">!=</span> 0
</span></p><p><span style="font-family:Courier New;font-size:10pt">                    <span style="color:blue">break
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">                <span style="color:blue">print</span>
			<span style="color:fuchsia">replicate</span><span style="color:gray">(</span><span style="color:red">' '</span><span style="color:gray">,</span>8<span style="color:gray">)+</span><span style="color:teal">@Droit</span>
			<span style="color:gray">+</span>
			<span style="color:red">' '</span>
			<span style="color:gray">+</span>
			<span style="color:teal">@NomSousEntite
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">            <span style="color:blue">end
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">close</span>
			<span style="color:teal">crDroits
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">deallocate</span>     <span style="color:teal">crDroits</span>        
</span></p><p><span style="font-family:Courier New;font-size:10pt">                        
</span></p><p><span style="font-family:Courier New;font-size:10pt">        <span style="color:blue">delete</span>
			<span style="color:blue">from</span>
			<span style="color:teal">@tATraiter</span>
			<span style="color:blue">where</span>
			<span style="color:teal">NoATraiter</span>
			<span style="color:gray">=</span>
			<span style="color:teal">@NoATraiter
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    <span style="color:blue">end
</span></span></p><p><span style="font-family:Courier New;font-size:10pt">    
</span></p><p><span style="color:green;font-family:Courier New;font-size:10pt">-- On reprend notre identité
</span></p><p><span style="color:blue;font-family:Courier New;font-size:10pt">revert
</span></p><p>
 </p><p>
 </p><p><span style="color:#4f81bd;font-family:Arial;font-size:14pt"><strong>Exemples de lancements :
</strong></span></p><p>
 </p><p>
 </p><p><span style="font-family:Arial;font-size:12pt"><strong>Avec sa :
</strong></span></p><p><span style="font-family:Courier New;font-size:8pt">Connexion auditée :sa
</span></p><p><span style="font-family:Courier New;font-size:8pt">------------------------------
</span></p><p><span style="font-family:Courier New;font-size:8pt">Privilèges sur le serveur SQL :LTREE24
</span></p><p><span style="font-family:Courier New;font-size:8pt">------------------------------------------------------------
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ADMINISTER BULK OPERATIONS 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER ANY CONNECTION 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER ANY CREDENTIAL 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER ANY DATABASE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER ANY ENDPOINT 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER ANY EVENT NOTIFICATION 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER ANY LINKED SERVER 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER ANY LOGIN 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER ANY SERVER AUDIT 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER RESOURCES 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER SERVER STATE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER SETTINGS 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER TRACE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        AUTHENTICATE SERVER 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        CONNECT SQL 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        CONTROL SERVER 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        CREATE ANY DATABASE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        CREATE DDL EVENT NOTIFICATION 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        CREATE ENDPOINT 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        CREATE TRACE EVENT NOTIFICATION 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        EXTERNAL ACCESS ASSEMBLY 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SHUTDOWN 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        UNSAFE ASSEMBLY 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        VIEW ANY DATABASE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        VIEW ANY DEFINITION 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        VIEW SERVER STATE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">Privilèges sur la base :DemoSecurite
</span></p><p><span style="font-family:Courier New;font-size:8pt">------------------------------------------------------------
</span></p><p><span style="font-family:Courier New;font-size:8pt">    Privilèges sur la table :[dbo].[DonneesManagers]
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        CONTROL 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        DELETE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        EXECUTE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        INSERT 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        RECEIVE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        REFERENCES 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        TAKE OWNERSHIP 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        UPDATE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        VIEW CHANGE TRACKING 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        VIEW DEFINITION 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        REFERENCES Cle
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT Cle
</span></p><p><span style="font-family:Courier New;font-size:8pt">        UPDATE Cle
</span></p><p><span style="font-family:Courier New;font-size:8pt">        REFERENCES Valeur
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT Valeur
</span></p><p><span style="font-family:Courier New;font-size:8pt">        UPDATE Valeur
</span></p><p><span style="font-family:Courier New;font-size:8pt">    Privilèges sur la table :[dbo].[DonneesEmployes]
</span></p><p><span style="font-family:Courier New;font-size:8pt">        ALTER 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        CONTROL 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        DELETE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        EXECUTE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        INSERT 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        RECEIVE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        REFERENCES 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        TAKE OWNERSHIP 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        UPDATE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        VIEW CHANGE TRACKING 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        VIEW DEFINITION 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        REFERENCES Cle
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT Cle
</span></p><p><span style="font-family:Courier New;font-size:8pt">        UPDATE Cle
</span></p><p><span style="font-family:Courier New;font-size:8pt">        REFERENCES Valeur
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT Valeur
</span></p><p><span style="font-family:Courier New;font-size:8pt">        UPDATE Valeur
</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt"><strong> Avec DemoManager :
</strong></span></p><p><span style="font-family:Courier New;font-size:8pt">Connexion auditée :DemoManager
</span></p><p><span style="font-family:Courier New;font-size:8pt">------------------------------
</span></p><p><span style="font-family:Courier New;font-size:8pt">Privilèges sur le serveur SQL :LTREE24
</span></p><p><span style="font-family:Courier New;font-size:8pt">------------------------------------------------------------
</span></p><p><span style="font-family:Courier New;font-size:8pt">        CONNECT SQL 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        VIEW ANY DATABASE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">Privilèges sur la base :DemoSecurite
</span></p><p><span style="font-family:Courier New;font-size:8pt">------------------------------------------------------------
</span></p><p><span style="font-family:Courier New;font-size:8pt">    Privilèges sur la table :[dbo].[DonneesManagers]
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT Cle
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT Valeur
</span></p><p><span style="font-family:Courier New;font-size:8pt">    Privilèges sur la table :[dbo].[DonneesEmployes]
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT Cle
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT Valeur
</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt"><strong>Avec DemoEmployeManager :
</strong></span></p><p><span style="font-family:Courier New;font-size:8pt">Connexion auditée :DemoEmployeManager
</span></p><p><span style="font-family:Courier New;font-size:8pt">------------------------------
</span></p><p><span style="font-family:Courier New;font-size:8pt">Privilèges sur le serveur SQL :LTREE24
</span></p><p><span style="font-family:Courier New;font-size:8pt">------------------------------------------------------------
</span></p><p><span style="font-family:Courier New;font-size:8pt">        CONNECT SQL 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        VIEW ANY DATABASE 
</span></p><p><span style="font-family:Courier New;font-size:8pt">Privilèges sur la base :DemoSecurite
</span></p><p><span style="font-family:Courier New;font-size:8pt">------------------------------------------------------------
</span></p><p><span style="font-family:Courier New;font-size:8pt">    Privilèges sur la table :[dbo].[DonneesManagers]
</span></p><p><span style="font-family:Courier New;font-size:8pt">    Privilèges sur la table :[dbo].[DonneesEmployes]
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT 
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT Cle
</span></p><p><span style="font-family:Courier New;font-size:8pt">        SELECT Valeur
</span></p><p>
 </p><p><span style="font-family:Arial;font-size:12pt">On voit bien que les privilèges sur les données des managers sont bien enlevés…
</span></p><p>
 </p><p>
 </p><p><span style="color:#4f81bd;font-family:Arial;font-size:14pt"><strong>Conclusion :
</strong></span></p><p><span style="font-family:Arial;font-size:12pt">Voilà plusieurs mois que je promettais à mes auditeurs un tel script, c'est fait.<br>Il pourra servir de base à une procédure stockée, et, pourquoi pas à un rapport d'audit sur Reporting Services….</span></p></div></div>
<div><b>Catégorie:</b> Audit des privilèges de sécurité</div>
<div><b>Publié:</b> 24/01/2010 16:41</div>
]]></description>
      <author>Compte système</author>
      <category>Audit des privilèges de sécurité</category>
      <pubDate>Sun, 24 Jan 2010 15:41:48 GMT</pubDate>
      <guid isPermaLink="true">http://www.dominiqueverriere.com/DBA/Lists/Billets/ViewPost.aspx?ID=28</guid>
    </item>
  </channel>
</rss>