2017-09-19 13 views
-2

Je veux créer un script PowerShell pour faire suite àPowershell avec SQL

1) Créer Connexion/utilisateur dans SQL 2) Accorder l'accès à la base de données 3) supprimer l'accès à la base de données

processus sera comme 1) Se connecter à SQL Server (Instance) -> Se connecter à la base de données dans cette instance -> Voir si Connexion/Utilisateur existe -> si Non -> Créer une connexion -> Créer un utilisateur -> Accorder l'accès à la base de données.

Note:

1) L'utilisateur de Windows sont 2) Parfois, je vais vous connecter à plusieurs instances SQL. Donc, le script devrait également vérifier si la base de données mentionnée est présente dans cette instance.

+1

Bonne chance. Si vous êtes coincé poster votre code. –

+0

Bonjour, vous voudrez regarder les modules SQL Server et SQLPS qui sont disponibles pour PowerShell. Les membres de SO ne construiront pas un script pour vous, mais si vous mettez quelque chose ensemble, nous serons ravis de vous aider avec les problèmes que vous rencontrez. Google est également un bon endroit pour commencer :) – cet51

+1

Stack Overflow n'est pas un service d'écriture de code. Si vous avez besoin d'aide pour apprendre comment coder ou dépanner quelque chose, alors c'est l'endroit pour vous. Si vous avez besoin de code à partir de zéro, vous devriez engager un développeur. – ArcSet

Répondre

0

La commande vous principalement besoin pour cela est: Invoke-SQLcmd (documentation)

Si vous voulez pouvoir appeler cette commande si vous n'avez pas SSMS installé, vous aurez besoin des PowershellTools et la SharedManagementObject packages du SQL features pack

Voici un exemple de son utilisation. De là, vous pouvez facilement appeler SQL et faire n'importe quelle logique de Powershell à partir de Powershell.

.

Cela dit,

de votre description, vous semble déjà être familier avec SQL tout pas du tout avec Powershell. Vous pouvez choisir de passer par la route SQLCMD pour plus de possibilités de script dans votre SQL, ce qui vous permettra d'utiliser des variables dynamiques et de faire pratiquement toute la logique de votre question (y compris l'itération de plus d'un serveur par le même script)

SQLcmd example

(référence: SQLAuthority

Quelques informations SQLCMD: SQLCMD Utility

Bien sûr, si vous avez d'plutôt dans Powershell, puis apprendre quelques base, faire un peu tentatives et poser des questions en fournissant un échantillon de votre code et où vous êtes coincé et nous serons en mesure de vous aider sur cette base.

+0

J'ai créé ce script –

+0

$ svr = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $ servers $ srv.ConnectionContext.LoginSecure = $ true; $ srv.ConnectionContext.ConnectAsUser = $ true; $ srv.ConnectionContext.set_Login ("compte-service"); $ srv.ConnectionContext.set_Password ("Mot de passe"); $ databasenames = "TestDB1", "TestDB2" $ LOGINNAME = "Jsmith" if ($ LOGINNAME -eq $ null) {$ Connexion = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Login -ArgumentList $ svr, $ Nom d'utilisateur $ Login.LoginType = 'WindowsUser' $ Login.Create() $ LoginName - $ Login.Name} –