- Detalhes
- Categoria: Sql Server
- Acessos: 279
O mascaramento de dados é definido a nível de coluna no create table ou através do alter table (dinamic data mask - DDM) para "anonimizar" um dado para atender demandas da LGPD.
Exemplo prático, mascarar cpf na tabela pf
ALTER TABLE contato ALTER COLUMN ds_contato ADD MASKED WITH (FUNCTION = 'email()')
para remover a máscara:
ALTER TABLE contato ALTER COLUMN ds_contato drop MASKED
Referência técnica:
- Detalhes
- Categoria: Sql Server
- Acessos: 206
No menu Ferramentas, clique em Opções.
No painel de navegação da janela Opções, clique em Designers. Marque ou desmarque a caixa de seleção Evitar salvar alterações que exijam recriação de tabela e clique em OK.
- Detalhes
- Categoria: Sql Server
- Acessos: 144
Queremos habilitar o cmdshell para executar comandos como esse, para remover um arquivo no disco do servidor do banco de dados:
Xp_cmdshell 'del c:\temp\heredia_1200h.bak'
Se xp_cmdshell precisar ser usado, como uma melhor prática de segurança, é recomendável habilitá-lo apenas durante a tarefa real que o exige.
USE [msdb]
GO
-- To allow advanced options to be changed.
EXECUTE sp_configure 'show advanced options', 1;
GO
-- To update the currently configured value for advanced options.
RECONFIGURE;
GO
-- To enable the feature.
EXECUTE sp_configure 'xp_cmdshell', 1;
GO
-- To update the currently configured value for this feature.
RECONFIGURE;
GO
Respostas:
A opção de configuração 'show advanced options' foi alterada de 0 para 1. Execute a instrução RECONFIGURE para instalar.
A opção de configuração 'xp_cmdshell' foi alterada de 0 para 1. Execute a instrução RECONFIGURE para instalar.
- Detalhes
- Categoria: Sql Server
- Acessos: 172
Com o botão direito do mouse sobre a tabela vá ao Design
click no campo que deseja remover a propriedade e coloque-a com o valor "não"
Vide também como habilita e desabilita temporariamente essa propriedade, exemplo:
SET IDENTITY_INSERT [dbo].[uf] ON
INSERT [dbo].[uf] ([sg_uf], [nm_uf], [cd_pais], [cd_uf], [cd_regiao]) VALUES ('AC', 'ACRE', 1, 1, 1)
INSERT [dbo].[uf] ([sg_uf], [nm_uf], [cd_pais], [cd_uf], [cd_regiao]) VALUES ('AM', 'AMAZONAS', 1, 2, 1)
INSERT [dbo].[uf] ([sg_uf], [nm_uf], [cd_pais], [cd_uf], [cd_regiao]) VALUES ('AP', 'AMAPÁ', 1, 3, 1)
INSERT [dbo].[uf] ([sg_uf], [nm_uf], [cd_pais], [cd_uf], [cd_regiao]) VALUES ('AL', 'ALAGOAS', 1, 4, 2)
SET IDENTITY_INSERT [dbo].[uf] OFF
go
- Detalhes
- Categoria: Sql Server
- Acessos: 155
Uma demanda que nos surgiu foi criar um vínculo entre dois servidores de banco de dados para que possam trocar informações; o SQL Server seria o banco de dados principal na sede da empresa (local) e o banco de dados MySQL é o seu banco de dados na internet para o e-commerce.
Passo a passo da criação do "Linked Server":
- Logar no banco de dados SQL Server com o usuário que também será mapeado num usuário no banco de dados MySQL;
- No banco de dados SQL Server, ir em "Objetos de Servidor" --> "Servidores Vínculados" --> "Provedores" --> "MSDASQL", com o botão direito do Mouse selecione propriedades e marque as seguintes:
- Criar uma fonte de dados ODBC para o banco de dados remoto MySQL (pode-se baixar o aplicativo em MySQL :: Download Connector/ODBC) , vá em "Painel de Controle" --> "Sistemas e Segurança" --> "Ferramentas Administrativas" --> "Fontes de Dados ODBC (64 bits)" -- "DNS de Sistemas" --> "Adicionar"
Realize o teste dessa conexão, para verificar se tudo está correto:
- Agora vamos criar um servidor vinculado (Linked Server) chamado "SER" utilizando essa conexão ODBC criada acima. a criação será através de um script (também pode ser realizado com a interface gráfica do MS Management Studio):
USE [master]
GO
/****** Object: LinkedServer [SER] Script Date: 03/01/2023 23:27:16 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'SER', @srvproduct=N'lojayii', @provider=N'MSDASQL', @datasrc=N'loja365', @provstr=N'DRIVER={MySQL ODBC 8.0 Unicode Driver}; Hostname=loja365.mysql.dbaas.com.br; PORT=3306; DATABASE=loja365; LogonID=lojayii; PASSWORD=tytttrrrW#1968'
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'SER',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO
Com o botão direito do mouse sobre a nova conexão "SER" teste-a, se tudo ok vamos em frente:
- com o botão direito do mouse sobre a nova conexão "SER" selecione propriedades e na nova tela selecione "Segurança"
Mapeie o usuário do banco de dados SQL Server no usuário no banco de dados MySQL remoto, tudo pronto agora é só testar !
Referências:
[1] - OPENQUERY (Transact-SQL) - SQL Server | Microsoft Learn
Página 1 de 3