sp_addapprole (Transact-SQL)
Ajoute un rôle d'application à la base de données active.
Important : |
---|
Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez plutôt CREATE APPLICATION ROLE. |
Conventions de la syntaxe de Transact-SQL
Syntaxe
sp_addapprole [ @rolename = ] 'role' , [ @password = ] 'password'
Arguments
[ @rolename = ] 'role'
Nom du nouveau rôle d'application. role est de type sysname et n'a pas de valeur par défaut. role doit correspondre à un identificateur valide et ne doit pas déjà exister dans la base de données active.Les rôles d'application peuvent contenir de 1 à 128 caractères, y compris les lettres, les symboles et les nombres. Les noms de rôles ne peuvent contenir ni barre oblique inverse (\), ni valeur NULL, ni chaîne vide ('').
- [ @password = ] 'password'
Mot de passe nécessaire pour activer le rôle d'application. password est de type sysname et n'a pas de valeur par défaut. password ne peut pas avoir la valeur NULL.
Valeurs des codes de retour
0 (succès) ou 1 (échec)
Notes
Dans les versions antérieures de SQL Server, les utilisateurs (et leurs rôles) ne sont pas complètement distincts des schémas. Dans SQL Server 2005, les schémas sont complètement distincts des rôles. Cette nouvelle architecture se manifeste dans le comportement de CREATE APPLICATION ROLE. Cette instruction prévaut sur sp_addapprole. Pour plus d'informations, consultez Séparation du schéma et de l'utilisateur.
Pour préserver la compatibilité avec les versions antérieures de SQL Server, sp_addapprole effectue les tâches suivantes :
- S'il n'existe pas encore de schéma portant le même nom que le rôle d'application, ce schéma est créé. Le nouveau schéma est la propriété du rôle d'appplication et devient le schéma par défaut de ce rôle.
- S'il existe déjà un schéma portant le même nom que le rôle d'application, la procédure échoue.
- sp_addapprole ne vérifie pas la complexité des mots de passe, contrairement à CREATE APPLICATION ROLE.
Le paramètre password est stocké sous la forme d'un hachage unidirectionnel.
La procédure stockée sp_addapprole ne peut pas être exécutée dans une transaction définie par l'utilisateur.
Remarque relative à la sécurité : |
---|
L'option encrypt de Microsoft ODBC n'est pas prise en charge par SqlClient. Invitez si possible les utilisateurs à entrer les informations d'identification des rôles d'application au moment de l'exécution. Évitez de stocker ces informations dans un fichier. Si vous devez les conserver, chiffrez-les à l'aide des fonctions CryptoAPI. |
Autorisations
L'autorisation ALTER ANY APPLICATION ROLE est nécessaire sur la base de données. S'il n'existe pas encore de schéma présentant le même nom et le même propriétaire que le nouveau rôle, l'autorisation CREATE SCHEMA sur la base de données est également requise.
Exemple
L'exemple suivant ajoute le nouveau rôle d'application SalesApp
à la base de données active avec le mot de passe x97898jLJfcooFUYLKm387gf3
.
EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3' ;
GO
Voir aussi
Référence
CREATE APPLICATION ROLE (Transact-SQL)
Autres ressources
Séparation du schéma et de l'utilisateur