Postada em 21/03/2006 09:45 hs
Seguinte, quando eu instalo o MSDE pela minha aplicacao eu reparei que se nao houverem algumas permissoes no meu usuario eu nao consigo atualizar as tabelas. Entao eu fiz o seguinte script para instalacao caso nao haja nenhuma base de dados Sql instalada.
'Cria o banco de dados
Sql = "CREATE DATABASE " & DbLink & " " Sql = Sql & " ON " Sql = Sql & "( NAME = " & DbLink & "_dat," Sql = Sql & "FILENAME = '" & dirTemp & "" & DbLinkMDF & "'," Sql = Sql & "SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) " Sql = Sql & "LOG ON ( NAME = " & DbLink & "_log," Sql = Sql & "FILENAME = '" & dirTemp & "" & DBlinkLDF & "'," Sql = Sql & "SIZE = 5MB,MAXSIZE = 25MB,FILEGROWTH = 5MB )"
Conecta True Cn.Execute (Sql)
'Cria o usuario de acesso do linkacesso Sql = "EXEC sp_addlogin '" & UserLink & "','" & PwdLink & "','" & DbLink & "'" Cn.Execute (Sql)
Sql = "EXEC sp_grantdbaccess '" & UserLink & "', '" & DbLink & "'" Cn.Execute (Sql)
Sql = "EXEC sp_addsrvrolemember '" & UserLink & "', 'sysadmin'" Cn.Execute (Sql)
Set SqlC = New ADODB.Command
Sql = "USE " & DbLink & Chr(13) Sql = Sql & "EXEC sp_adduser '" & UserLink & "','" & UserLink & "', 'db_owner'" & Chr(13) Sql = Sql & "EXEC sp_addrolemember 'db_owner', '" & UserLink & "'"
SqlC.CommandText = Sql SqlC.ActiveConnection = Cn SqlC.Execute (Sql)
Cn.Execute (Sql)
Feito isso eu rodo o script para gerar as tabelas e procedures que estam em um arquivo .sql
Soh que eu reparei que mesmo assim nao sao atribuidas as permissoes para que o usuario por mim criado possa ter acesso de escrita nas tabelas do banco e assim ele acaba nao criando as tabelas. Alguem teria uma solucao ou uma outra maneira de se fazer isso?
|