Conception Et Réalisation (SQL Server) by Grare Stéphane - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

Par le code

En mode sécurité Windows :

Avec du code T-SQL, la syntaxe de création d’une connexion SQL Server est la suivante :

(pour rappel, les noms de groupes ou les utilisateurs doivent être les mêmes que sous

Windows).

136

CREATE LOGIN nom_connexion

FROM WINDOWS

WITH DEFAULT_DATABASE=Master

DEFAULT_LANGUAGE=langue

L’instruction CREATE LOGIN permet d’annoncer à SQL Server que nous allons créer une

connexion. Il est nécessaire de donner le nom de la connexion Windows associée. La clause

FROM WINDOWS, permet de dire que le login existe dans le système d’exploitation

Windows. Les deux options suivantes permettent quant à elles de choisir, et la base par

défaut de la connexion, et la langue par défaut de cette même connexion.

Il est important de noter que les instructions UPDATE et DELETE peuvent être appliquées

dans le cas d’un changement de propriété de connexion ou d’une suppression de connexion.

Exemple :

Création d’un compte intégré SQL Server pour l’utilisateur Windows Util2 de la machine locale

ou du domaine 03112-375 (les options de stratégie ne peuvent être définies, car elles sont

définies au niveau Windows) sur la base master.

CREATE LOGIN [03112-375\Util2]

FROM WINDOWS

WITH DEFAULT_DATABASE = master

Idem, mais sur la base Papyrus :

CREATE LOGIN [03112-375\Util2]

FROM WINDOWS

WITH DEFAULT_DATABASE = Papyrus

En mode de sécurité mixte :

L’instruction CREATE LOGIN annonce à SQL Server qu’une nouvelle connexion va être créée.

On donne impérativement un nom à cette connexion.

CREATE LOGIN nom_connexion

FROM PASSWORD='monmotdepasse'

Motdepasse HASHED MUST_CHANGED,

DEFAULT_DATABASE=Master,

DEFAULT_LANGUAGE=langue,

CHECK_EXPIRATION=ON,

CHECK_POLICY=ON,

CREDENTIAL=Nom

La clause FROM permet de donner plusieurs propriétés à cette connexion, qui sont les

suivantes :

- PASSWORD : Permet de préciser un mot de passe. L’option HASHED, permet de hacher le

mot de passe lors de son stockage en fonction de la chaîne de caractères précisée avant de

mot clé.

- DEFAULT_DATABASE : Permet de préciser le nom de la base de données par default.

- DEFAULT_LANGUAGE : Permet de préciser un langage par défaut.

137

- CHECK_EXPIRATION : À OFF par défaut. Il n’est possible d’activer cette option que si

CHECK_POLICY est aussi activé. Elle permet d’appliquer la politique de changement des

mots de passe défini sur le serveur.

- CHECK_POLICY : A ON par défaut, cette option permet de récupérer au niveau serveur,

les options définies pour la politique de sécurité.

- CREDENTIAL : Permet de relier la connexion à un credential créé auparavant. Nous verrons

par la suite ce qu’est un credential.

On peut également utiliser la procédure stockée sp_addlogin qui permet à un utilisateur de

se connecter à une instance de SQL Server à l'aide de l'authentification SQL Server.

EXEC sp_addlogin 'Utilisateur', 'motdepasse', 'basededonnees'

Exemple : Nous créons l’« Utilisateur1 » avec le mot de passe « pwd » sur la base de données

« papyrus ».

EXEC sp_addlogin 'Utilisateur1', 'pwd', 'Papyrus'

Modification des connexions à SQL Server

Vous pouvez modifier les connexions par l’interface avec les écrans vus précédemment ou en

utilisant du code T-SQL :

Activation d'une connexion désactivée. L'exemple suivant active la connexion Mary5.

ALTER LOGIN Mary5 ENABLE;

Modification du mot de passe d'une connexion. L'exemple suivant remplace le mot de passe

de la connexion Mary5 par un mot de passe fort.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

Modification du nom d'une connexion. L'exemple suivant remplace le nom de connexion Mary5

par John2.

ALTER LOGIN Mary5 WITH NAME = John2;

Mappage d'une connexion sur une information d'identification. L'exemple suivant mappe la

connexion John2 aux informations d'identification Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

Mappage d'une connexion à des informations d'identification EKM (Extensible Key

Management). L'exemple suivant mappe la connexion Mary5 aux informations d'identification

EKM EKMProvider1.

ALTER LOGIN Mary5

ADD CREDENTIAL EKMProvider1;

GO

Déverrouillage d'une connexion. Pour déverrouiller une connexion SQL Server, exécutez

l'instruction suivante, en remplaçant * * * * par le mot de passe de compte souhaité.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;

GO

138

index-139_1.png

Pour déverrouiller une connexion sans modifier le mot de passe, désactivez la stratégie de

contrôle, puis réactivez-la.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;

GO

Modification du mot de passe d'une connexion à l'aide de HASHED. L'exemple suivant modifie

le mot de passe de la connexion TestUser en une valeur déjà hachée.

ALTER LOGIN TestUser WITH

PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;

GO

Suppression des connexions à SQL Server

Vous pouvez modifier les connexions par l’interface avec les écrans vus précédemment ou en

utilisant du code T-SQL.

Gestion des utilisateurs de base de données

Après avoir créé un compte (identité de serveur) pour la connexion au serveur SQL, il

convient de lui accorder des droits d’accès à une ou plusieurs bases de données. Une

connexion ne pourra exécuter des opérations sur une base que s’il existe un compte

utilisateur défini sur cette base, associé à la connexion.

En utilisant l’interface

Développez alors le nœud Sécurité et placez-vous sur le nœud Utilisateurs. Cliquez droit sur

l’utilisateur puis « Propriétés ».

Dans l’onglet « Mappage de l’utilisateur », définissez les bases de données où l’utilisateur

aura accès. Il est, entre autres, possible d’attacher des schémas à cet utilisateur ainsi que des

rôles de base de données.

139

index-140_1.jpg