Eventos
31 de mar., 23 - 2 de abr., 23
O maior evento de aprendizado de SQL, Fabric e Power BI. 31 de março a 2 de abril. Use o código FABINSIDER para economizar $ 400.
Registre-se hoje mesmoNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Aplica-se a: SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
PDW (Analytics Platform System)
Banco de Dados SQL no Microsoft Fabric
Um conceito central de segurança do SQL Server é que os proprietários de objetos têm permissões irrevogáveis administrá-los. Você não pode remover os privilégios de um proprietário de objeto nem pode eliminar usuários de um banco de dados se eles tiverem objetos nele.
A separação do esquema do usuário permite maior flexibilidade em gerenciar permissões do objeto de banco de dados. Um esquema é um contêiner nomeado para objetos de banco de dados, que permite que você agrupe objetos em namespaces separados. Por exemplo, o banco de dados de exemplo AdventureWorks contém esquemas para Production, Sales e HumanResources.
A sintaxe de nomeação de quatro partes para referir-se a objetos especifica o nome do esquema.
Server.Database.DatabaseSchema.DatabaseObject
Os esquemas podem ser de propriedade de qualquer entidade de banco de dados, e uma única entidade pode ter vários esquemas. Você pode aplicar regras de segurança a um esquema, que são herdadas por todos os objetos no esquema. Depois que você configurar permissões de acesso para um esquema, essas permissões serão aplicadas automaticamente à medida que novos objetos forem adicionados ao esquema. Os usuários podem ser atribuídos a um esquema padrão, e vários usuários do banco de dados podem compartilhar o mesmo esquema.
Por padrão, quando os desenvolvedores criam objetos em um esquema, os objetos são possuídos pela entidade de segurança que possui o esquema, não pelo desenvolvedor. A propriedade do objeto pode ser transferida com a instrução ALTER AUTHORIZATION do Transact-SQL. Um esquema também pode conter objetos de propriedade de diferentes usuários e ter as permissões mais granulares que as atribuídas ao esquema, embora isso não seja recomendado porque adiciona complexidade a permissões de gerenciamento. Os objetos podem ser movidos entre esquemas e a propriedade do esquema pode ser transferida entre entidades de segurança. Os usuários do banco de dados podem ser removidos sem afetar esquemas.
O SQL Server é fornecido com nove esquemas predefinidos que têm os mesmos nomes que os usuários e funções de banco de dados internos: db_accessadmin, db_backupoperator, db_datareader, db_datawriter, db_ddladmin, db_denydatareader, db_denydatawriter, db_owner, db_securityadmin. Eles existem para compatibilidade com versões anteriores. A recomendação é não usá-los para objetos de usuário. Você pode descartar os esquemas que têm os mesmos nomes que as funções de banco de dados fixas, a menos que eles já estejam em uso; nesse caso, drop-command retornará um erro e bloqueará o descarte do esquema usado.
IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'db_accessadmin')
DROP SCHEMA [db_accessadmin]
GO
IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'db_backupoperator')
DROP SCHEMA [db_backupoperator]
GO
IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'db_datareader')
DROP SCHEMA [db_datareader]
GO
IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'db_datawriter')
DROP SCHEMA [db_datawriter]
GO
IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'db_ddladmin')
DROP SCHEMA [db_ddladmin]
GO
IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'db_denydatareader')
DROP SCHEMA [db_denydatareader]
GO
IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'db_denydatawriter')
DROP SCHEMA [db_denydatawriter]
GO
IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'db_owner')
DROP SCHEMA [db_owner]
GO
IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'db_securityadmin')
DROP SCHEMA [db_securityadmin]
GO
Se você remover esses esquemas do banco de dados model
, eles não aparecerão em novos bancos de dados. Não é possível descartar esquemas que contêm objetos.
Os seguintes esquemas não podem ser descartados:
dbo
guest
sys
INFORMATION_SCHEMA
Observação
Os esquemas sys
e INFORMATION_SCHEMA
são reservados para objetos do sistema. Você não pode criar objetos nesses esquemas e não pode removê-los.
O esquema dbo
é o esquema padrão de cada banco de dados. Por padrão, os usuários criados com o comando CREATE USER do Transact-SQL têm dbo
como o esquema padrão. O esquema dbo
é de propriedade da conta de usuário do dbo
.
Os usuários que recebem dbo
como esquema padrão não herdam as permissões da conta de usuário do dbo
. Nenhuma permissão é herdada de um esquema por usuários; as permissões de esquema são herdadas pelos objetos de banco de dados contidos no esquema. O esquema padrão de um usuário é usado somente para referência de objeto, caso o usuário omita o esquema ao consultar objetos.
Observação
Quando os objetos de banco de dados são referenciados usando um nome de uma parte, o SQL Server primeiro procura no esquema padrão do usuário. Se o objeto não for encontrado lá, o SQL Server procurará em seguida no esquema dbo
. Se o objeto não estiver no esquema dbo
, um erro será retornado.
Eventos
31 de mar., 23 - 2 de abr., 23
O maior evento de aprendizado de SQL, Fabric e Power BI. 31 de março a 2 de abril. Use o código FABINSIDER para economizar $ 400.
Registre-se hoje mesmoTreinamento
Módulo
Introdução a conceitos de segurança no Dataverse - Training
Veja uma introdução a conceitos de segurança no Microsoft Dataverse.
Certificação
Microsoft Certified: Azure Database Administrator Associate - Certifications
Administrar uma infraestrutura de banco de dados do SQL Server para bancos de dados relacionais de nuvem, locais e híbridos usando as ofertas de banco de dados relacional do Microsoft PaaS.
Documentação
Permissões (Mecanismo de Banco de Dados) - SQL Server
Consulte esta lista completa de permissões do SQL Server para saber mais sobre quais permissões se aplicam a plataformas que você usa.
Permissões de banco de dados GRANT (Transact-SQL) - SQL Server
Permissões de banco de dados GRANT (Transact-SQL)
sys.fn_my_permissions (Transact-SQL) - SQL Server
sys.fn_my_permissions (Transact-SQL)