Quantcast
Channel: PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources
Viewing all articles
Browse latest Browse all 6937

Need help please, Form with SQL Server connection.

$
0
0

guys,

I am developing a Form in Powershell with SQL Server connection, the screen appears but does not write to the database.

This screen is to create Login, Password and permissions Read, Write and db_owner.

Please can you help me?

[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms.DataVisualization") [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null 

$x = @() 

$Form = New-Object System.Windows.Forms.Form 

$Form.Text = "Administração de usuarios SQLServer" 

$Form.Size = New-Object System.Drawing.Size(800,600) 

$Form.StartPosition = "CenterScreen" 

#$Form.controls.add() 

#$Form.Add_Shown({$Form.Activate()}) 

#$Form.ShowDialog() 

$Form.KeyPreview = $True 

$Form.Add_KeyDown({if ($_.KeyCode -eq "Enter") 

    {$x=$objTextBox.Text;$Form.Close()}}) 

$Form.Add_KeyDown({if ($_.KeyCode -eq "Escape") 

    {$Form.Close()}}) 

#nova ver ponteiro no primeiro campo 

#$Form.Cursor=[System.Windows.Forms.Cursors]::WaitCursor 

[System.Windows.Forms.Application]::UseWaitCursor=$false 

 

 

$OKButton = New-Object System.Windows.Forms.Button 

$OKButton.Location = New-Object System.Drawing.Size(65,460) 

$OKButton.Size = New-Object System.Drawing.Size(75,23) 

$OKButton.Text = "OK" 

$OKButton.Add_Click({$x=$objTextBox.Text,$objTextBox2.Text,$objTextBox3.Text,$objTextBox4.Text,$procName.Checked,$procName2.Checked,$procName3.Checked;$Form.Close()})

$Form.Controls.Add($OKButton) 

$CancelButton = New-Object System.Windows.Forms.Button 

$CancelButton.Location = New-Object System.Drawing.Size(150,460) 

$CancelButton.Size = New-Object System.Drawing.Size(75,23) 

$CancelButton.Text = "Cancel" 

$CancelButton.Add_Click({$Form.Close()}) 

$Form.Controls.Add($CancelButton) 

$objLabel = New-Object System.Windows.Forms.Label 

#$objLabel.DataBindings.DefaultDataSourceUpdateMode = 0 

$objLabel.Location = New-Object System.Drawing.Size(10,20) 

$objLabel.Size = New-Object System.Drawing.Size(280,20) 

$objLabel.Text = "Server:" 

$Form.Controls.Add($objLabel) 

$objTextBox = New-Object System.Windows.Forms.TextBox 

$objTextBox.DataBindings.DefaultDataSourceUpdateMode = 0 

$objTextBox.Location = New-Object System.Drawing.Size(10,40) 

$objTextBox.Size = New-Object System.Drawing.Size(260,20) 

$objTextBox.Name="ServerName" 

$objTextBox.TabIndex = 0 

$Form.Controls.Add($objTextBox) 

$objLabel2 = New-Object System.Windows.Forms.Label 

$objLabel2.Location = New-Object System.Drawing.Size(10,70) 

$objLabel2.Size = New-Object System.Drawing.Size(260,20) 

$objLabel2.Text = "Database:" 

$Form.Controls.Add($objLabel2) 

$objTextBox2 = New-Object System.Windows.Forms.TextBox 

$objTextBox2.Location = New-Object System.Drawing.Size(10,90) 

$objTextBox2.Size = New-Object System.Drawing.Size(260,20) 

$objTextBox2.Name="Base Name" 

$objTextBox2.TabIndex = 0 

$Form.Controls.Add($objTextBox2) 

$objLabel3 = New-Object System.Windows.Forms.Label 

$objLabel3.Location = New-Object System.Drawing.Size(10,120) 

$objLabel3.Size = New-Object System.Drawing.Size(260,20) 

$objLabel3.Text = "User:" 

$Form.Controls.Add($objLabel3) 

$objTextBox3 = New-Object System.Windows.Forms.TextBox 

$objTextBox3.Location = New-Object System.Drawing.Size(10,140) 

$objTextBox3.Size = New-Object System.Drawing.Size(260,20) 

$objTextBox3.name="User" 

$objTextBox3.TabIndex = 0 

$Form.Controls.Add($objTextBox3) 

$objLabel4 = New-Object System.Windows.Forms.Label 

$objLabel4.Location = New-Object System.Drawing.Size(350,120) 

$objLabel4.Size = New-Object System.Drawing.Size(260,20) 

$objLabel4.Text = "Password:" 

$Form.Controls.Add($objLabel4) 

$objTextBox4 = New-Object System.Windows.Forms.TextBox 

$objTextBox4.Location = New-Object System.Drawing.Size(350,140) 

$objTextBox4.Size = New-Object System.Drawing.Size(260,20) 

$objTextBox4.name="Pass" 

$objTextBox4.TabIndex = 0 

$Form.Controls.Add($objTextBox4) 

$groupBox = New-Object System.Windows.Forms.GroupBox 

$groupBox.Location = New-Object System.Drawing.Size(10,190) 

$groupBox.size = New-Object System.Drawing.Size(755,200) 

$groupBox.Text = "Permissões e acessos Database:" 

$Form.Controls.Add($groupBox) 

$procName = New-Object System.Windows.Forms.checkbox 

$procName.Location = New-Object System.Drawing.Size(10,40) 

$procName.Size = New-Object System.Drawing.Size(100,20) 

$procName.Checked = $false 

$procName.Text = "Read" 

$procName.TabIndex = 0 

$groupBox.Controls.Add($procName) 

$procName2 = New-Object System.Windows.Forms.checkbox 

$procName2.Location = New-Object System.Drawing.Size(270,40) 

$procName2.Size = New-Object System.Drawing.Size(100,20) 

$procName2.Checked = $false 

$procName2.Text = "Write" 

$procName2.TabIndex = 0 

$groupBox.Controls.Add($procName2) 

$procName3 = New-Object System.Windows.Forms.checkbox 

$procName3.Location = New-Object System.Drawing.Size(550,40) 

$procName3.Size = New-Object System.Drawing.Size(100,20) 

$procName3.Checked = $false 

$procName3.Text = "Alter" 

$procName3.TabIndex = 0 

$groupBox.Controls.Add($procName3) 

If ($objTextBox.Text -eq '' -and $objTextBox2.Text -eq '' -and $objTextBox3.Text -eq '' -and $objTextBox4.Text -eq '' -and $procName.Checked -eq '' -and $procName2.Checked -eq '' -and $procName3.Checked -eq '' ) 

Else 

$objForm.Cursor=[System.Windows.Forms.Cursors]::WaitCursor 

 

$Instance = $objTextBox.Text 

$DBName = $objTextBox2.Text 

$LoginName = $objTextBox3.Text 

$Password = $objTextBox4.Text 

 

$bb=$Instance 

$bb 

$bb 

 

$Server = New-Object ("Microsoft.SqlServer.Management.SMO.Server") $instance 

 

#Recebi login pra ver se exist. 

$Login = $Server.Logins.Item($LoginName) 

 

IF (!($Login))  #check se é existente. 

    #Caso não existir é criado um novo login 

    $Login = New-Object ("Microsoft.SqlServer.Management.SMO.Login") ($Server, $LoginName)   

    $Login.LoginType = [Microsoft.SqlServer.Management.Smo.LoginType]::SqlLogin 

    $Login.Create($Password) 

$DB = $Server.Databases[$DBName] 

$User = $DB.Users[$LoginName] 

if (!($User)) # check se usuário é existente. 

    #Se não Add. 

    $User = New-Object ("Microsoft.SqlServer.Management.SMO.User") ($DB, $LoginName) 

    $User.Login = $LoginName 

    $User.Create() 

    IF ($procName.Checked -eq $true) 

    $Role_Leitura="db_datareader" 

    $dbrole = $DB.Roles[$Role_Leitura]   

    $dbrole.AddMember($user.Name) 

    $dbrole.Alter() 

    Write-Host("User $user adicionado com sucesso para $Role_Leitura.") 

Else{ 

}

IF ($procName2.Checked -eq $true) 

    $Role_Gravacao ="db_datawriter" 

 

    $dbrole2 = $DB.Roles[$Role_Gravacao] 

    $dbrole2.AddMember($user.Name) 

    $dbrole2.Alter() 

    Write-Host("User $user adicionado com sucesso para $Role_Gravacao.") 

Else { 

IF ($procName3.Checked -eq $true) 

    $Role_Modificacao ="db_owner" 

 

        $dbrole3 = $DB.Roles[$Role_Modificacao] 

    $dbrole3.AddMember($user.Name) 

    $dbrole3.Alter() 

    Write-Host("User $user adicionado com sucesso para $Role_Modificacao.") 

Else { 

  } 

}

$Form.Topmost = $True 

$Form.Add_Shown({$Form.Activate()}) 

[void] $Form.ShowDialog() 

$x 

 


Viewing all articles
Browse latest Browse all 6937

Trending Articles