Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Tip
Microsoft Fabric Data Warehouse é um armazém relacional de escala empresarial com base de data lake, arquitetura pronta para o futuro, IA integrada e novos recursos. Se você não estiver familiarizado com o data warehouse, comece com Fabric Data Warehouse. As cargas de trabalho existentes de pools de SQL dedicados podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.
Segurança em nível de coluna permite que os clientes controlem o acesso a colunas de tabela com base no contexto de execução do usuário ou na associação de grupo.
A segurança em nível de coluna simplifica o design e a codificação da segurança em seu aplicativo, permitindo que você restrinja o acesso às colunas para proteger dados confidenciais. Por exemplo, garantir que usuários específicos possam acessar apenas certas colunas de uma tabela pertinente ao seu departamento. A lógica de restrição de acesso está localizada na camada de banco de dados, em vez de estar afastada dos dados em outra camada de aplicação. O banco de dados aplica as restrições de acesso sempre que o acesso a dados é tentado de qualquer camada. Essa restrição torna a segurança mais robusta e confiável, reduzindo a área de superfície do sistema de segurança como um todo. Além disso, a segurança em nível de coluna também elimina a necessidade de introduzir exibições para filtrar colunas para impor restrições de acesso aos usuários.
Você deve implementar a segurança em nível de coluna com a sintaxe T-SQL GRANT Object Permissions. Com esse mecanismo, há suporte para autenticação sql e autenticação do Microsoft Entra ID (antigo Azure Active Directory).
Considere também a capacidade de impor a Segurança em nível de linha em tabelas, com base em um filtro de cláusula WHERE.
Sintaxe
A sintaxe da GRANT instrução para permissões de objeto permite a concessão de permissões para listas de colunas delimitadas por vírgulas em uma tabela.
GRANT <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission> ::=
SELECT
| UPDATE
<database_principal> ::=
Database_user
| Database_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
Exemplos
O exemplo a seguir mostra como restringir TestUser de acessar a coluna SSN da tabela Membership:
Crie uma tabela Membership com uma coluna SSN utilizada para armazenar números de previdência social:
CREATE TABLE Membership
(MemberID int IDENTITY,
FirstName varchar(100) NULL,
SSN char(9) NOT NULL,
LastName varchar(100) NOT NULL,
Phone varchar(12) NULL,
Email varchar(100) NULL);
Permitir TestUser acessar todas as colunas , exceto a SSN coluna, que tem os dados confidenciais:
GRANT SELECT ON Membership(MemberID, FirstName, LastName, Phone, Email) TO TestUser;
As consultas executadas como TestUser falham se incluírem SSN coluna.
SELECT * FROM Membership;
Com o erro resultante:
Msg 230, Level 14, State 1, Line 12
The SELECT permission was denied on the column 'SSN' of the object 'Membership', database 'CLS_TestDW', schema 'dbo'.
Casos de uso
Alguns exemplos de como a segurança em nível de coluna está sendo usada hoje:
- Uma empresa de serviços financeiros permite que apenas os gerentes de contas tenham acesso a SSN (números de previdência social), números de telefone e outros dados pessoais.
- Um provedor de saúde permite que apenas médicos e enfermeiros tenham acesso a registros médicos confidenciais, impedindo que os membros do departamento de cobrança visualizem esses dados.