Je suis en train de créer une procédure stockée afin de créer un login et un utilisateur de base de données?
Je développe une application en C#, SQL Server, et voudrais appeler une procédure stockée afin de créer un login et un utilisateur.
Je suis à la recherche de la façon la plus simple de le faire, juste par défaut des trucs, mais ont nom d'utilisateur et mot de passe.
Le créer, à côté de connexion est souligné en rouge?
Mais je pense que mon login est bien? S'il vous plaît dites-moi si je me manque quelque chose.
Et avec la création d'un utilisateur, est-il seulement un liner comme ça?
CREATE PROCEDURE CreateLoginAndUser
@UserName
CREATE LOGIN @UserName
WITH PASSWORD = 'password',
DEFAULT_DATABASE = [TestAudit],
DEFAULT_LANGUAGE = [British],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=ON;
CREATE USER 'DEV' + @UserName
[{ FOR | FROM } LOGIN @UserName] [WITH DEFAULT_SCHEMA = schema]
Je ne comprends pas FOR
et FROM
...
Je pourrais faire quelque chose comme ceci:
CREATE PROCEDURE CreateLoginAndUser
@UserName
CREATE LOGIN @UserName
WITH PASSWORD = 'password',
DEFAULT_SCHEMA = schema
CREATE USER 'DEV'+@UserName
[{ FOR | FROM } LOGIN @UserName] [WITH DEFAULT_SCHEMA = schema]
Comment avoir Googlé les sources suivantes:
http://ss64.com/sql/login_c.html
http://ss64.com/sql/user_c.html
- voulez-vous créer un nouveau compte d'utilisateur approfondie de la procédure stockée? Votre problème n'est pas très clair.
- Oui, je ne
- Sa fine comme mot de passe 🙂
- Découvrez: Base SQL Server concepts de Sécurité - les connexions, les utilisateurs et les directions d'école. Un connexion est un serveur à l'échelle de l'objet; une utilisateur est une base de données unique seulement.
- merci de mauvais check it out.
Vous devez vous connecter pour publier un commentaire.
Envisager l'utilisation de stabilisation d'image dynamique SQL pour créer un utilisateur. Par exemple, pour créer une connexion au serveur appelé
@login
avec un utilisateur de base de données appelé'DEV' + @login
:Il pourrait être plus facile à construire l'instruction SQL côté client. Mais même alors, vous ne pouvez pas utiliser les paramètres avec l'
create login
déclaration. Soyez donc sur vos gardes, à propos de l'Injection SQL.'
comme''
. Ainsi, le''''
est comme il devrait être: une chaîne de caractères contenant deux guillemets simples.{ POUR | DE } signifie que vous pouvez utiliser pour ou de.
| (barre verticale) = Sépare les éléments de la syntaxe entre crochets ou accolades. Vous pouvez utiliser un seul de ces éléments.
EDIT:
J'aurais dû ajouter qu'ils sont synonymes, vous pouvez utiliser l'un d'eux, le résultat est le même
Vous devriez considérer les droits de l'utilisateur. Pour créer la connexion sql server et la base de données de l'utilisateur, vous devez avoir des privilèges élevés sur l'instance de SQL Server. Donc, soit vous avez à accorder des droits d'utilisateur pour effectuer l'action (et que signifient - au niveau du serveur et de la base de données levier autorisations) ou vous devez utiliser d'autres mécanismes de ne pas faire de votre serveur vulnérable.
L'une des options serait de l'utilisation de certificats et de sceau des procédures stockées pour faire les choses "bien" et de ne pas autoriser la création de connexions/d'utilisateurs directement.
Aussi, celui qui est capable d'utiliser trace, sera en mesure de voir le mot de passe (si vous n'êtes pas d'emballage que, dans la procédure, le mot de passe n'est pas affiché dans la trace).
voici un exemple sur la façon de créer une connexion pour le serveur et un utilisateur de votre base de données
- il s'adapter à une procédure
vous n'avez qu'à recevoir de l'usr et le mot de passe en tant que paramètre et utiliser