No SQL Server, ao definir permissões com uma instrução Grant, fazemos isso em usuários, não em logins. Por exemplo:
CREATE LOGIN login1 WITH PASSWORD = 'sssssssss';
use mydb;
CREATE USER user1 FOR LOGIN login1
grant delete on table1 to user1
Assim, os usuários podem ou não conseguir realizar uma determinada tarefa em uma determinada mesa. Mas, ao conectar a um banco de dados do JDBC e etc, damos o nome de login e a senha (login1 e 'sssssssss' aqui) na string de conexão , não o nome do usuário!
Então, onde essas declarações de concessão se mostram?! Nunca mencionamos User1 no código! E, se definirmos dois usuários para o mesmo login, cada um com permissões diferentes, e depois conectarmos ao banco de dados do JDBC, quais dessas permissões de usuário são consideradas?
Um logon do SQL Server é usado para autenticar o principal no nível do servidor e para fornecer permissões no nível do servidor.
Um usuário de banco de dados mapeia para zero ou um login e é usado para fornecer um contexto de segurança no banco de dados. As permissões de banco de dados são atribuídas a entidades de banco de dados, incluindo funções, não diretamente a logins.
Os nomes de usuário geralmente não são especificados nas cadeias de conexão. A exceção é quando um usuário é autenticado no nível do banco de dados e, portanto, não possui login.
Não tenho certeza se entendi sua pergunta claramente, portanto, tenha paciência comigo sobre a questão de logins e usuários.
Parece ser, no seu caso, logins do SQL Server e não contas do Active Directory, mas eles se comportam essencialmente da mesma forma em um servidor e banco de dados.
Além disso, pelo que vale a pena, parece que alguma etapa ou etapas estão faltando na sua pergunta. Não é grande coisa no geral.
Login: (nível do servidor)
Você pode criar o login Login1 , que tem um SID de
0x14151617181920212223242526099097
e conceder a ele alguns direitos. Esses direitos pertencem ao login.Usuário: (nível do banco de dados)
Quando você cria User1 para Login1, o usuário herda o mesmo SID de
0x14151617181920212223242526099097
.Assim, dentro do seu banco de dados, o login do servidor Login1 é realmente executado pelo usuário do banco de dados User1 para que o usuário seja credenciado com a permissão.
Porque, como você vê, os dois são realmente a mesma conta. O nome do usuário é absolutamente sem sentido em termos de execução. É o SID que importa.