Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2016
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
  2. [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement")
  3.  
  4. cls
  5.  
  6. $loginName = "sonarcube"
  7. $loginPassword = "*************"
  8. $dbName = "sonarcube"
  9. $roleName = "db_owner"
  10.  
  11. $srv = new-Object Microsoft.SqlServer.Management.Smo.Server("${env:ComputerName}\SQLEXPRESS")
  12.  
  13. # Enable TCP/IP mode
  14. $smo = 'Microsoft.SqlServer.Management.Smo.'
  15. $wmi = new-object ($smo + 'Wmi.ManagedComputer')
  16. $uri = "ManagedComputer[@Name='" + (get-item env:\computername).Value + "']/ServerInstance[@Name='SQLEXPRESS']/ServerProtocol[@Name='Tcp']"
  17. $Tcp = $wmi.GetSmoObject($uri)
  18. $Tcp.IsEnabled = $true
  19. $Tcp.Alter()
  20.  
  21. if ($srv.Logins.Contains($loginName))
  22. {
  23. Write-Host("Deleting the existing login $loginName.")
  24. $srv.Logins[$loginName].Drop()
  25. }
  26.  
  27. $DBObject = $srv.Databases[$dbName]
  28.  
  29. #check database exists on server
  30. if ($DBObject)
  31. {
  32. Write-Host("Dropping the existing database $dbName.")
  33. #instead of drop we will use KillDatabase
  34. #KillDatabase drops all active connections before dropping the database.
  35. $srv.KillDatabase($dbName)
  36. }
  37.  
  38. $db = New-Object Microsoft.SqlServer.Management.Smo.Database($srv, $dbName)
  39.  
  40. # set collation mode to SQL_Latin1_General_CP1_CS_AS
  41. $db.Create()
  42.  
  43. $db.Collation = "SQL_Latin1_General_CP1_CS_AS"
  44. $db.Alter()
  45.  
  46. Write-Host $db.CreateDate
  47.  
  48. $database = $srv.Databases[$dbName]
  49. if ($database.Users[$loginName])
  50. {
  51. Write-Host("Dropping user $loginName on $database.")
  52. $database.Users[$loginName].Drop()
  53. }
  54.  
  55. $Login = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Login -ArgumentList $srv, $loginName
  56. $Login.LoginType = 'SqlLogin'
  57. $login.PasswordExpirationEnabled = $false
  58. $login.Create($loginPassword)
  59.  
  60. $dbUser = New-Object -TypeName Microsoft.SqlServer.Management.Smo.User -ArgumentList $database, $loginName
  61. $dbUser.Login = $loginName
  62. $dbUser.Create()
  63. Write-Host("User $loginName created successfully.")
  64.  
  65. #assign database role for a new user
  66. $dbrole = $database.Roles[$roleName]
  67. $dbrole.AddMember($loginName)
  68. $dbrole.Alter()
  69. Write-Host("User $dbUser successfully added to $roleName role.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement