MS SQL Server: onde está minha conta de usuário?

1

Eu tenho acesso a qualquer banco de dados neste servidor usando meu ID e senha. Aqui está minha string de conexão:

Data Source=my.database; Initial Catalog=main_table; User ID=my_user_id; Password=my_password;

Funciona, mas agora quero negar acesso a my_user_id. O problema é - não consigo encontrar o usuário em nenhum lugar no banco de dados.

Como isso é possível? Parece uma conta invisível. Não lista em nenhum lugar, no entanto, o SQL concede privilégios a essa conta.

Estou perdido, onde devo procurar essa conta?

    
por Harry 25.10.2018 / 11:16

2 respostas

0

SELECT CASE 
        WHEN sysadmin = 1
            THEN 'You have system admin access'
        ELSE 'Normal user'
        END
FROM sys.syslogins
WHERE loginname LIKE '<loginname>'

a consulta acima retornará 'Você tem acesso de administrador do sistema' significa que o login fornecido possui privilégio sysadmin, caso contrário, o login fornecido não tem privilégio sysadmin.

    
por 26.10.2018 / 13:16
0

Solução:

O login do servidor deve estar associado a um usuário do banco de dados para executar ações no banco de dados. Ambos são principais no SQL Server. Em uma cadeia de conexão, o valor para o ID do usuário é o nome do login do servidor. Você pode tentar verificar os mapeamentos de usuários para este login de servidor para seu banco de dados atual:

USE main_table               -- Server database

SELECT 
    sp.name AS LoginName,
    sp.type_desc AS LoginType,
    dp.name AS DatabaseUserName,
    r.name AS DatabaseRoleName
FROM sys.server_principals sp
LEFT JOIN sys.database_principals dp ON dp.sid = sp.sid
LEFT JOIN sys.database_role_members drm ON drm.member_principal_id = dp.principal_id
LEFT JOIN sys.database_principals r ON r.principal_id = drm.role_principal_id
WHERE sp.name = 'my_user_id' -- Server Login

Notas:

Com sua string de conexão atual, acho que você tenta se conectar ao SQL Server com autenticação SQL. Em seguida, seu login do SQL é mapeado para um usuário do banco de dados (o login do servidor não é igual ao usuário do banco de dados). Se você deseja se conectar usando a autenticação do Windows, na maioria dos casos é necessário remover a ID do usuário e a senha da string de conexão e incluir IntegratedSecurity = true.

    
por 26.10.2018 / 09:00

Tags