O MS SQL não pode se conectar com problemas de permissões do JDBC…?

1

Eu usei "sa" para criar um usuário "secure1" e posso me conectar como secure1 usando o Management Studio local e remotamente.

Quando eu mudo para o JDBC com o url (eu uso dois \ na URL abaixo, mas o stackexchange removeu a outra barra porque o java vê o \ como uma seqüência de escape)

jdbc: sqlserver: //192.168.111.111 \ MYDBQA: 1433; Catálogo Inicial = mydatabase

Acabei de receber um Login Negado. Se eu apagar o Catálogo Inicial, receberei o Login Negado. Acabei dando ao meu usuário secure1 a função de servidor sysadmin além do público que ele já tinha.

Atualmente, em Mapeamentos de usuários para o 'mydatabase', dei a ele todas as permissões, exceto db_deny **. Eu também adicionei ele ao master, model, msdb, tempdb e marquei todas as permissões, exceto as do db_den, embora isso também não esteja funcionando.

Minha pergunta mais importante primeiro, para que eu possa começar a trabalhar primeiro ...

  1. Como fazer isso funcionar ou há algum documento sobre como configurar o MS SQL para uma conexão JDBC em algum lugar?

Depois, para melhorar um pouco ...

  1. Como configurá-lo corretamente para que meu usuário possa ler / gravar / criar / atualizar todas as tabelas em 'mydatabase', mas não fazer mais nada em nenhum outro banco de dados.

NOTA: Eu consigo me conectar com o usuário "sa" pelo JDBC.

obrigado Dean

    
por Dean Hiller 18.08.2012 / 16:44

1 resposta

2

Dean,

Algumas coisas.

  1. Desfaz todas as alterações de permissão feitas nos outros bancos de dados, nenhuma delas foi necessária. Melhor ainda, exclua o usuário que você criou, o que, por sua vez, excluirá todas as outras alterações de permissão.
  2. Recrie seu usuário, não atribua a ele funções de servidor, basta criar o usuário.
  3. Na seção Mapeamentos de usuários, atribua seu myDatabase a ele e conceda o direito db_owner. (Controle total apenas sobre este banco de dados)
  4. Verifique se você ativou o protocolo TCP / IP na ferramenta Configuração do SQL Server.

Experimente agora.

Atualização:

Sua string de conexão está errada. Parece que você está usando uma instância nomeada do SQL Server e a instância nomeada não usa o número de porta padrão. É bom que você tenha o serviço SQL Browser em execução, mas sua string de conexão deve ficar mais parecida com esta:

jdbc:sqlserver://serverName;instanceName=instance1;integratedSecurity=true;<more properties as required>;

    
por 18.08.2012 / 16:49