Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Azure Synapse Analytics tem dois formatos SQL que lhe permitem controlar o consumo de recursos. Este artigo explica como os dois fatores de formato controlam a autenticação do utilizador.
Para autenticar ao Synapse SQL, pode usar duas opções:
- Autenticação do Microsoft Entra
- Autenticação SQL
A autenticação SQL permite que aplicações legadas se liguem ao Azure Synapse SQL de forma familiar, com um nome de utilizador e palavra-passe. No entanto, a autenticação Microsoft Entra permite gerir centralmente o acesso a recursos do Azure Synapse, como pools SQL. O Azure Synapse Analytics suporta a desativação da autenticação local, como a autenticação SQL, tanto durante como após a criação do espaço de trabalho. Uma vez desativada, a autenticação local pode ser ativada a qualquer momento por utilizadores autorizados. Para obter mais informações sobre a autenticação somente Microsoft Entra, consulte Desabilitando a autenticação local no Azure Synapse Analytics.
Contas administrativas
Existem duas contas administrativas (nome de utilizador administrador SQL e administrador Microsoft Entra) que atuam como administradores. Para identificar estas contas de administrador para os seus pools SQL, abra o portal Azure e navegue até ao separador Propriedades do seu espaço de trabalho Synapse.
Nome de utilizador administrador SQL
Ao criar um Azure Synapse Analytics, deve nomear um login de administrador de servidor. O SQL Server cria essa conta como um login na
masterbase de dados. Esta conta liga-se através de autenticação SQL Server (nome de utilizador e palavra-passe). Apenas uma destas contas pode existir.Microsoft Entra admin
Uma conta Microsoft Entra, seja individual ou de grupo de segurança, também pode ser configurada como administradora. É opcional configurar um administrador do Microsoft Entra, mas um administrador do Microsoft Entra tem de estar configurado se quiser usar contas Microsoft Entra para se ligar ao Synapse SQL.
- A conta de administrador Microsoft Entra controla o acesso a pools SQL dedicados, enquanto as funções Synapse RBAC podem ser usadas para controlar o acesso a pools serverless, por exemplo, com o Administrador Synapse e o Administrador SQL Synapse.
O nome de utilizador de administrador SQL e as contas de administrador Microsoft Entra têm as seguintes características:
- São as únicas contas que podem ligar-se automaticamente a qualquer base de dados SQL no servidor. (Para se ligar a uma base de dados de utilizadores, as outras contas devem ser o proprietário da base de dados ou ter uma conta de utilizador na base de dados.)
- Estas contas entram nas bases de dados dos utilizadores como o
dboutilizador e têm todas as permissões nas bases de dados dos utilizadores. (O proprietário de uma base de dados de utilizador também entra na base de dados como o utilizadordbo.) - Não entre na
masterbase de dados como o utilizadordbo; e tenha permissões limitadas na base de dadosmaster. -
Não são membros da função de servidor fixa padrão do SQL Server
sysadmin, que não está disponível na base de dados SQL. - Pode criar, alterar e eliminar bases de datos, logins, utilizadores na
masterbase de dados e regras de firewall IP ao nível do servidor. - Pode adicionar e remover membros às funções
dbmanagereloginmanager. - Pode ver a
sys.sql_loginstabela do sistema.
Nota
Se um utilizador for configurado como administrador do Microsoft Entra e administrador do Synapse, e depois removido do papel de administrador do Microsoft Entra, o utilizador perderá o acesso aos pools SQL dedicados no Synapse. Devem ser removidos e em seguida adicionados à função de Administrador Synapse para recuperar o acesso aos pools SQL dedicados.
Para gerir o acesso dos utilizadores ao pool SQL serverless, pode usar as instruções abaixo.
Para criar um login num pool SQL serverless, use a seguinte sintaxe:
CREATE LOGIN Mary WITH PASSWORD = '<strong_password>';
-- or
CREATE LOGIN [Mary@domainname.net] FROM EXTERNAL PROVIDER;
Quando o login existe, pode criar utilizadores nas bases de dados individuais dentro do endpoint do pool SQL serverless e conceder as permissões necessárias a esses utilizadores. Para criar um utilizador, pode usar a seguinte sintaxe:
CREATE USER Mary FROM LOGIN Mary;
-- or
CREATE USER Mary FROM LOGIN Mary@domainname.net;
-- or
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;
Depois de criados o login e o utilizador, pode usar a sintaxe normal do SQL Server para conceder direitos.
Utilizadores não administradores
Geralmente, contas que não são administradores não precisam de acesso à master base de dados. Criar utilizadores de base de dados contidos ao nível da base de dados usando a instrução CREATE USER (Transact-SQL).
O utilizador pode ser um utilizador de base de dados contido pela autenticação Microsoft Entra (se tiver configurado o seu ambiente para autenticação Microsoft Entra), ou um utilizador de autenticação SQL Server com base de dados, ou um utilizador de autenticação SQL Server baseado num login de autenticação SQL Server (criado na etapa anterior).
Para criar utilizadores, ligue-se à base de dados e execute instruções semelhantes aos seguintes exemplos:
CREATE USER Mary FROM LOGIN Mary;
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;
Inicialmente, apenas um dos administradores ou o proprietário da base de dados pode criar utilizadores. Para autorizar utilizadores adicionais a criar novos utilizadores, conceda a esse utilizador selecionado a ALTER ANY USER permissão, utilizando uma instrução como:
GRANT ALTER ANY USER TO Mary;
Para dar a utilizadores adicionais controlo total sobre a base de dados, adicionando-os como membros da função fixa de base de dados db_owner.
No Azure SQL Database ou Synapse Serverless, use a ALTER ROLE instrução.
ALTER ROLE db_owner ADD MEMBER Mary;
Num pool SQL dedicado, usa o sp_addrolemember EXEC.
EXEC sp_addrolemember 'db_owner', 'Mary';
Nota
Uma razão comum para criar um utilizador de base de dados com base num login de servidor é para utilizadores que precisam de acesso a múltiplas bases de dados. Como os utilizadores de bases de dados contidas são entidades individuais, cada base de dados mantém o seu próprio utilizador e a sua própria palavra-passe. Isto pode causar sobrecarga, pois o utilizador tem de se lembrar de cada palavra-passe para cada base de dados, e pode tornar-se insustentável ao ter de alterar múltiplas palavras-passe para várias bases de dados.
Grupos e funções
A gestão eficiente de acessos utiliza permissões atribuídas a grupos e papéis em vez de utilizadores individuais.
Ao utilizar a autenticação Microsoft Entra, coloque os utilizadores Microsoft Entra num grupo Microsoft Entra. Crie um usuário de banco de dados contido para o grupo. Coloque um ou mais utilizadores de base de dados num papel de base de dados e depois atribua permissões ao papel de base de dados.
Ao utilizar autenticação SQL Server, crie utilizadores de base de dados contidos na base de dados. Coloque um ou mais utilizadores de base de dados num papel de base de dados e depois atribua permissões ao papel de base de dados.
Os papéis na base de dados podem ser os papéis incorporados, como db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter e db_denydatareader. db_owner é comumente usado para conceder permissão total a apenas alguns usuários. Os outros papéis de base de dados fixos são úteis para obter rapidamente uma base de dados simples em desenvolvimento, mas não são recomendados para a maioria das bases de dados de produção.
Por exemplo, a função fixa de base de dados db_datareader concede acesso de leitura em todas as tabelas da base de dados, o que normalmente é mais do que o estritamente necessário.
É muito melhor usar a instrução CREATE ROLE para criar os seus próprios papéis de base de dados definidos pelo utilizador e conceder cuidadosamente a cada função o mínimo de permissões necessárias para a necessidade do negócio. Quando um usuário é membro de várias funções, elas agregam as permissões de todas elas.
Permissões
Há mais de 100 permissões que podem ser concedidas ou negadas individualmente no Banco de dados SQL. Muitas dessas permissões estão aninhadas. Por exemplo, a UPDATE permissão em um esquema inclui a UPDATE permissão em cada tabela dentro desse esquema. Como na maioria dos sistemas de permissão, a negação de uma permissão substitui uma concessão.
Devido à natureza aninhada e ao número de permissões, pode ser necessário um estudo cuidadoso para projetar um sistema de permissão apropriado para proteger adequadamente seu banco de dados.
Comece com a lista de permissões em Permissões (Motor de Base de Dados) e reveja o gráfico em tamanho de poster das permissões do motor de base de dados.
Considerações e restrições
Ao gerir logins e utilizadores numa base de dados SQL, considere os seguintes pontos:
- Deve estar conectado à
masterbase de dados ao executar asCREATE/ALTER/DROP DATABASEinstruções. - O utilizador da base de dados correspondente ao login de administrador do servidor não pode ser alterado ou cancelado.
- O administrador do servidor será desativado se a autenticação apenas Microsoft Entra estiver ativada.
- US-English é a língua padrão do login de administrador do servidor .
- Apenas os administradores (login administrador do servidor ou administrador Microsoft Entra) e os membros da função de base de dados dbmanager na
masterbase de dados têm permissão para executar as instruçõesCREATE DATABASEeDROP DATABASE. - Deve estar conectado à
masterbase de dados ao executar asCREATE/ALTER/DROP LOGINinstruções. No entanto, o uso de logins é desencorajado. Utilize utilizadores de bases de dados contidas. Para obter mais informações, veja Contained Database Users - Making Your Database Portable (Utilizadores de Base de Dados Contidos – Tornar a Sua Base de Dados Portátil). - Para se ligar a uma base de dados de utilizadores, deve fornecer o nome da base de dados na cadeia de conexão.
- Apenas o login principal ao nível do servidor e os membros do papel de base de dados loginmanager na
masterbase de dados têm permissão para executar asCREATE LOGINinstruções ,ALTER LOGIN, eDROP LOGIN. - Ao executar as
CREATE/ALTER/DROP LOGINinstruções eCREATE/ALTER/DROP DATABASEnuma aplicação ADO.NET, não é permitido usar comandos parametrizados. Para mais informações, consulte Comandos e Parâmetros. - Ao executar a
CREATE USERinstrução com aFOR/FROM LOGINopção, deve ser a única instrução num lote Transact-SQL. - Ao executar a instrução
ALTER USERcom a opçãoWITH LOGIN, esta deve ser a única instrução num lote de Transact-SQL. - As instruções
CREATE/ALTER/DROP LOGINeCREATE/ALTER/DROP USERnão são suportadas quando a autenticação exclusiva do Microsoft Entra está ativada para o espaço de trabalho do Azure Synapse. - Para
CREATE/ALTER/DROPum utilizador, é necessário ter permissãoALTER ANY USERna base de dados. - Quando o proprietário de um papel de base de dados tenta adicionar ou remover outro utilizador de base de dados para ou a partir desse papel de base de dados, pode ocorrer o seguinte erro: Utilizador ou função 'Nome' não existe nesta base de dados. Este erro ocorre porque o utilizador não é visível para o proprietário. Para resolver este problema, conceda ao proprietário da função a
VIEW DEFINITIONpermissão sobre o utilizador.
Conteúdo relacionado
Para obter mais informações, veja Contained Database Users - Making Your Database Portable (Utilizadores de Base de Dados Contidos – Tornar a Sua Base de Dados Portátil).