<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog SQL d&#039;un développeur Microsoft. &#187; Securite</title>
	<atom:link href="https://blog.developpez.com/ylarvor/pcategory/ecosysteme/securite/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/ylarvor</link>
	<description>SQL or No-SQL !</description>
	<lastBuildDate>Sat, 04 Jun 2016 19:39:50 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>A quoi sert un schéma en SQL ?</title>
		<link>https://blog.developpez.com/ylarvor/p6398/modelisation/schema/sql_serveur_le_schema_dans_la_modelisati</link>
		<comments>https://blog.developpez.com/ylarvor/p6398/modelisation/schema/sql_serveur_le_schema_dans_la_modelisati#comments</comments>
		<pubDate>Wed, 17 Sep 2008 14:46:42 +0000</pubDate>
		<dc:creator><![CDATA[ylarvor]]></dc:creator>
				<category><![CDATA[Schéma]]></category>
		<category><![CDATA[Securite]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Pourquoi les utiliser ? Quand les utiliser ? Comment les utiliser ? Pourquoi les utiliser ? 1 Pour accélérer les requêtes : Précisez toujours nominement le schéma de l&#8217;objet, c&#8217;est encore mieux avec une collation binaire de votre base. 2 Si vous n&#8217;utilisez pas Power AMC, vous pouvez utilisez un schéma pour supprimer l&#8217;ordre dans [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Pourquoi les utiliser ?<br />
Quand les utiliser ?<br />
Comment les utiliser ?</p>
<p><span id="more-13"></span></p>
<p>Pourquoi les utiliser ?</p>
<p>1 Pour accélérer les requêtes : Précisez toujours nominement le schéma de l&rsquo;objet, c&rsquo;est encore mieux avec une collation binaire de votre base. </p>
<p>2 Si vous n&rsquo;utilisez pas Power AMC, vous pouvez utilisez un schéma pour supprimer l&rsquo;ordre dans la création des objets, par exemple, à l&rsquo;intérieur d&rsquo;un schéma, il est tout à fait envisageable de créer une vue avant les tables dont elle depend. Personnellement, je préfère que Power AMC crée les objets dans l&rsquo;ordre.</p>
<p>3 Si vous utilisez des tables ayant un même nom pour une raison fonctionnelle, placez les dans un schéma de nom différent et nommez précisement le schéma avant chaque utilisation pour éviter toute équivoque.</p>
<p>4 Sur une grande base, les schémas simplifie la lecture et la compréhension de la base en découpant en domaine fonctionnels.</p>
<p>Quand les utiliser ?</p>
<p>Lorsque l&rsquo;on regarde une application comme AdventuresWorks de Microsoft, on la comprend mieux grâce à l&rsquo;utilisation de plusieurs schémas.</p>
<p>Le schéma est l&rsquo;équivalent d&rsquo;un namespace, d&rsquo;un espace de nom sous .net avec une limitation de taille, il n&rsquo;y a q&rsquo;un seul niveau en SQL.</p>
<p>Personnellement, je n&rsquo;ai pas encore développer un produit de plus de 50 tables dans des domaines fonctionnels différents, justifiant de passer du schéma dbo vers plusieurs schémas.</p>
<p>Comment les utiliser ?</p>
<p>Power AMC semble gérer cet aspect si vous devez le mettre en place.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quelle est l&#8217;architecture interne de la sécurité sql serveur ?</title>
		<link>https://blog.developpez.com/ylarvor/p4968/ecosysteme/securite/prsentation_de_la_scurit</link>
		<comments>https://blog.developpez.com/ylarvor/p4968/ecosysteme/securite/prsentation_de_la_scurit#comments</comments>
		<pubDate>Tue, 08 May 2007 11:00:00 +0000</pubDate>
		<dc:creator><![CDATA[ylarvor]]></dc:creator>
				<category><![CDATA[Securite]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Il s&#8217;agit d&#8217;une présentation succinte de la sécurité d&#8217;une base de données sql server 2005. Elle vous sera utile pour comprendre comment remplir le connexionstring de C#. Cette présentation vous permettra également d&#8217;affiner la sécurité coté serveur SQL, à l&#8217;aide d&#8217;un script, si vous souhaitez sécuriser plus fortement qu&#8217;avec SA ou l&#8217;administrateur windows en fonction [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Il s&rsquo;agit d&rsquo;une présentation succinte de la sécurité d&rsquo;une base de données sql server 2005. Elle vous sera utile pour comprendre comment remplir le connexionstring de C#. Cette présentation vous permettra également d&rsquo;affiner la sécurité coté serveur SQL, à l&rsquo;aide d&rsquo;un script, si vous souhaitez sécuriser plus fortement qu&rsquo;avec SA ou l&rsquo;administrateur windows en fonction de votre mode de connexion.</p>
<p><strong>Choix du mode d&rsquo;authentification de sql serveur (Trés Important).</strong></p>
<p>
<strong>authentification windows</strong> : seuls les utilisateurs windows authentifiés peuvent accéder à sql serveur. Ce mode est hautement recommandé dans le cas d&rsquo;un domaine car il permet de mettre en place toute une politique de sécurité à l&rsquo;aide d&rsquo;active directory ( audit&#8230;).</p>
<p><strong>authentification mixte</strong> : Ce mode d&rsquo;authentification permet la connexion à sql serveur à des utilisateurs non windows.</p>
<p>Le mode d&rsquo;authentification du serveur, choisi lors de l&rsquo;installation, peut être modifié à l&rsquo;aide de sql server management studio.</p>
<p>
<strong>Les connexions ( sécurité externe ).</strong></p>
<p>Les connexions, appelé aussi identifiant par microsoft, ou login par les utilisateurs peuvent être crée par sql server management studio ou par T-SQL.</p>
<p>Pour créer une connexion windows : CREATE LOGIN [DomaineUtilisateur] FROM WINDOWS<br />Pour créer une connexion windows à un groupe : CREATE LOGIN[DomaineGroupe] FROM WINDOWS<br />Le groupe administrateur de windows possède une connexion de ce type.</p>
<p>Pour créer une connexion sql server : CREATE LOGIN nom_utilisateur WITH PASSWORD=&rsquo;password&rsquo;<br />L&rsquo;utilisateur SA possède une connexion de ce type.</p>
<p>Pour supprimer une connexion windows : DROP LOGIN [DomaineUtilisateur]<br />Pour supprimer une connexion windows à un groupe : DROP LOGIN [DomaineGroupe]<br />Pour supprimer une connexion sql serveur : DROP LOGIN nom_utilisateur</p>
<p>La propriété WITH DEFAULT_DATABASE=nom base_données permet de définir une base par défaut au login mais n&rsquo;accorde aucunement le droit d&rsquo;y accéder. Pour les droits d&rsquo;utilisation d&rsquo;une base de données, lisez le chapitre ci dessous relatif aux utilisateurs de bases de données et le compte GUEST.</p>
<p>
<strong>Rôle serveur de la connexion.</strong></p>
<p>SYSADMIN : toute activité est possible sur le serveur.<br />DBCREATOR : les membres peuvent créer, modifier, supprimer et restaurer toute base de données.<br />DISKADMIN : Ce rôle est utilisé pour gérer les disques physiques.<br />PROCESSADMIN : Les membres peuvent interrompre les processus en cours dans une instance SQL Serveur.<br />SECURITYADMIN : Les membres peuvent gérer les connexions et leurs propriétés. Ils peuvent accorder ( GRANT ), refuser ( DENY ) et révoquer ( REVOKE ) les autorisations au niveau serveur, au niveau base de donnée. ils peuvent réinitialiser les mots de passes. Ce rôle n&rsquo;a aucune permission pour affecter des autorisations de bases de données.<br />BULKADMIN : les membres peuvent executer l&rsquo;instruction BULK INSERT.<br />SERVERADMIN : les membres peuvent changer les options de configuration coté serveur et arrêter le serveur.<br />SETUPADMIN : les membres peuvent ajouter ou supprimer des serveurs liés et executer certaines procédures systèmes.</p>
<p>PUBLIC : Toutes les connexions valides sont membre de ce groupe.</p>
<p>Il est possible d&rsquo;affecter à une connexion un rôle serveur par la commande suivante :</p>
<p>EXECUTE sp_addsrvrolemember nom_login, role_serveur</p>
<p>Par défaut, le groupe des administrateurs windows a le rôle SYSADMIN.<br />Par défaut, l&rsquo;utilisateur SA a le rôle SYSADMIN.</p>
<p>Par conséquent, les utilisateurs qui se connectent sous ces identités peuvent tout faire sur le serveur ( configuration, création/destruction objets ).</p>
<p>En général, si l&rsquo;on souhaite mettre en place d&rsquo;une sécurité spécifique, un compte possède simplement le rôle par défaut PUBLIC et ne possède par conséquent aucun droit sur son environnement. Pour permettre à un rôle PUBLIC d&rsquo;agir, il va falloir relié le login/la connexion à un utilisateur SQL Serveur auquel on affectera des droits.</p>
<p>Un cas particulier permet à un utilisateur ayant le rôle PUBLIC d&rsquo;agir sur une base de données, lorsque l&rsquo;utilisateur de bases de données GUEST possède des droits, comme le droit de se connecter à une base de données, ou le droit de lire les données d&rsquo;une base.</p>
<p><strong>Les utilisateurs. Niveau interne de sécurité</strong></p>
<p>Pour créer un utilisateur en T-SQL , on utilise la commande :</p>
<p>CREATE USER nom_utilisateur FOR LOGIN nom_login WITH DEFAULT_SCHEMA = schema_par_defaut</p>
<p>si vous n&rsquo;utilisez pas la commande optionnel WITH DEFAULT_SCHEMA, alors le schéma par défaut sera dbo, le schéma de la base de données. Le ou les schémas d&rsquo;un utilisateur sont utilisés par sql serveur pour résoudre les noms d&rsquo;objet référencés sans leur nom complet.</p>
<p>Une fois l&rsquo;utilisateur créé et relié à une connexion, vous pouvez lui accorder un rôle de bases de données.</p>
<p><strong>les rôle de bases de données de l&rsquo;utilisateur.</strong></p>
<p>Afin de limiter le travail de l&rsquo;administrateur de bases de données dans le cas d&rsquo;une base de plusieurs dizaines d&rsquo;utilisateurs, au lieu d&rsquo;affecter des droits sur chaque objet, on peut affecter des droits globaux. Il est aussi possible de créer ses propres rôle de bases de données.</p>
<p>PUBLIC : par defaut.<br />DB_ACCESSADMIN : l&rsquo;utilisateur qui possède ce droit pour modifier un USER ou créer un schéma.<br />DB_BACKUPOPERATOR : Les membres peuvent sauvegarder la base de données.<br />DB_DATAREADER : les membres peuvent lire les données dans l&rsquo;ensemble des tables.<br />DB_DATAWRITER : les membres peuvent ajouter, supprimer, ou modifier des données dans les tables utilisateurs.<br />DB_DDLADMIN : les membres peuvent executer toute commande DDL dans une base de données.<br />DB_DENYDATAREADER : les membres ne peuvent lire les tables utilisateurs.<br />DB_DENYDATAWRITER : les membres ne peuvent écrire dans les tables utilisateurs.<br />DB_OWNER : les membres peuvent effectuer toute les opérations de maintenance et de configuration y compris la suppression.<br />DB_SECURITYADMIN : les membres peuvent modifier l&rsquo;appartenance à un rôle et gérer les autorisations.</p>
<p>On affecte un rôle à un utilisateur avec la procédure stockée :</p>
<p>EXECUTE sp_addrolemember nom_role,nom_utilisateur</p>
<p>Création d&rsquo;un rôle de base de données spécifique et affectation de droits à ce rôle.</p>
<p>USE mabase<br />GO<br />CREATE ROLE Rolemabase;<br />GRANT CREATE TABLE,CREATE VIEW,CREATE PROCEDURE TO Rolemabase;</p>
<p>On autorise la création d&rsquo;objet de bases de données pour les utilisateurs possédant le rôle RolemaBase.</p>
<p><strong>Les schémas.<br /></strong><br />Un schéma est un ensemble d&rsquo;objets de bases de données appartenant à un utilisateur interne. Marcel dans notre cas. La différence entre sql serveur 2000 et sql serveur 2005. c&rsquo;est qu&rsquo;avec sql serveur 2005, le schéma est indépendant de l&rsquo;utilisateur. Ainsi, lors qu&rsquo;un créateur de schéma quitte l&rsquo;entreprise, on peut réaffecter son schéma à un autre utilisateur trés simplement. On utilise les schémas pour créer des espaces de noms, l&rsquo;équivalent d&rsquo;une librairie C#, avec les objets de bases de données.</p>
<p><strong>Autorisations d&rsquo;instruction à un user sur une base de données.</strong></p>
<p>L&rsquo;authorisation de création d&rsquo;objet de bases de données est gérée par l&rsquo;autorisation d&rsquo;instruction</p>
<p>GRANT/REVOKE ALLInstructions TO user</p>
<p>GRANT : affecte<br />REVOKE : supprime</p>
<p>Instructions : BACKUP DATABASE, BACKUP LOG, CREATE DATABASE ,CREATE PROCEDURE, CREATE TABLE, CREATE VIEW</p>
<p><strong>Affectation de droit d&rsquo;accès à un user sur un objet.</strong></p>
<p>GRANT ALLAutorisations ON Table(colonne)Vue(colonne)Procedure_stockee TO User WITH GRANT OPTION AS User</p>
<p>ALL Accorder tous les droits.<br />Autorisations : CREATE, ALTER, DROP, CONTROL, CONNECT, SELECT, EXECUTE, UPDATE, DELETE , INSERT, TAKE OWNERSHIP, VIEW DEFINITION, BACKUP<br />WITH GRANT OPTION : Permet à l&rsquo;utilisateur bénéficiaire de transmettre ces droits à un autre.<br />AS User : User est un compte possédant les droits nécessaires pour accorder des autorisations.</p>
<p>lien : <a href="http://www.sqlfr.com/tutoriaux/SECURITE-SQL-SERVER_720.aspx">http://www.sqlfr.com/tutoriaux/SECURITE-SQL-SERVER_720.aspx</a><br />lien : <a href="http://pcaboche.developpez.com/article/sql-server/gestion-droits/">http://pcaboche.developpez.com/article/sql-server/gestion-droits/</a><br />lien : <a href="http://sql.developpez.com/sqlserver/securisation/">http://sql.developpez.com/sqlserver/securisation/</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment se connecter à SQL Server depuis le connexionstring de C# ?</title>
		<link>https://blog.developpez.com/ylarvor/p6526/programmation/c/quelques_precisions_sur_le_site_http_www</link>
		<comments>https://blog.developpez.com/ylarvor/p6526/programmation/c/quelques_precisions_sur_le_site_http_www#comments</comments>
		<pubDate>Mon, 06 Oct 2008 19:42:48 +0000</pubDate>
		<dc:creator><![CDATA[ylarvor]]></dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Securite]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Comment remplir la chaîne de connection se trouvant dans la chaîne connectionstring de votre fichier web.config en asp.net ? vous avez deux possibilités 1 &#8211;  la connection dite standard, pour un serveur de base de données accessible par un compte SA / mot de passe. Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword; Dans datasource, vous devez saisir l&#8217;adresse [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Comment remplir la chaîne de connection se trouvant dans la chaîne connectionstring de votre fichier web.config en asp.net ? </p>
<p>vous avez deux possibilités </p>
<p><span id="more-66"></span> </p>
<p>1 &#8211;  <strong>la connection dite standard</strong>, pour un serveur de base de données accessible par un compte SA / mot de passe.</p>
<p>Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;</p>
<p>Dans datasource, vous devez saisir l&rsquo;adresse IP de votre machine pour un serveur SQL par défaut.</p>
<p>Pour une instance nommée, vous pouvez saisir MonServeur\MonInstance</p>
<p>Dans initial catalog, vous nommez la base de données que vous accédez par défaut: par exemple AdventuresWorks.</p>
<p>Dans User Id, vous saisissez SA.</p>
<p>Dans Password, vous saisissez le mot de passe administrateur.</p>
<p>Bon, concernant le compte de connexion ( login et compte utilisateur ), j&rsquo; ai volontairement simplifié pour vous aider à comprendre mais en réalité, vous devez utiliser un compte utilisateur défini pour votre base uniquement avec des droits spécifiques sur chaque objet ou au moins un rôle dbreader pour une base en lecture seule et un login associé à ce seul compte.</p>
<p>2 &#8211; <strong>la connection dite windows</strong>, pour un serveur accessible depuis un compte administrateur windows</p>
<p>Si votre serveur est configuré en connection windows, c&rsquo;est à dire qu&rsquo;il n&rsquo;y a pas d&rsquo;utilisateur sql serveur mais une connection sous couverture du compte windows</p>
<p>la chaine est la suivante :</p>
<p>Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;</p>
<p>Datasource indique toujours l&rsquo;adresse IP de votre serveur pour un serveur par défaut, et pour une instance nommée, vous rajoutez 192.168.0.87\nomInstance</p>
<p>Initial catalog pointe sur la base par défaut, ici adventuresworks. </p>
<p>Quand au troisième paramètre, il indique qu&rsquo; il n&rsquo; y a pas de compte SA mais une connection basée sur le compte windows de l&rsquo; utilisateur.</p>
<p>Si vous êtes un utilisateur débutant de .net, j&rsquo;espère que ce complément à l&rsquo;excellent quoique complexe site www.connectionstring.com vous aidera. </p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
