2017-04-03 1 views
0

암호 필드에 값이있는 경우 암호 필드 값을 숨기고 싶지만 값이 없지만 값이 숨겨져있는 것처럼 null로 표시하려고합니다.이 작업을 수행하고 싶습니다. 도와주세요.SQL 서버에서 암호 필드 숨기기

+0

SQL 서버의 버전? –

+2

일반적으로 데이터베이스에 ** 비밀번호 **를 저장하지 마십시오. 원래 비밀번호를 재구성하는 것이 거의 불가능하도록 비밀번호의 ** 해시 **를 저장합니다. –

+0

나는이 일을하고 싶다 어떤 사람이 내 데이터베이스에 접근했다면 그에게 보여주지 않은 암호 값을 그에게 보여주고 싶다 그에게 암호가 없다는 null 값을 보여주고 싶다 –

답변

0

나는 당신이 이미하지 않은 경우

당신은 아마 해시와 소금에 절인 암호를 저장해야 ... 당신은 SQL Management Studio의 편집 모드에있을 때 얘기 가정합니다. 그러면 당신은 어깨 너머로 보이는 사람들에 대해 덜 염려 할 것입니다. 당신이 SELECT 문에 대해 이야기하는 경우 https://crackstation.net/hashing-security.htm

다음 그냥 열을 선택하거나

SELECT [username], NULL as [password] FROM users 
+0

내가 원하는 경우 테이블을 선택하고 상위 200 개의 행을 편집하려면 필드 비밀번호가 null로 표시되어야하지만 백엔드에서는 비밀번호 값이 저장되지만 뷰어에 null 필드가 있음 –

0

당신이 등록 할 필요가있다처럼 선택하지 않은 : 여기

구글에서 최고의 결과입니다 논리적 테스트를 수행 할 때 데이터베이스의 암호화 된 형식의 암호가 비교를 수행합니다.

이것은 은행이 아니라 애플리케이션에서 직접 처리됩니다.

+0

내 scnerio가 있습니다. 테이블을 선택하고 상위 200 개를 편집하려면 행 다음 필드 암호는 null로 표시해야하지만 백엔드에서는 암호 값이 저장되지만 뷰어에는 null 필드가 있음을 알 수 있습니다 –

0

우선 암호는 아니고 데이터베이스 해시에 저장할 수 있습니다. 그러나 때로는 액세스로부터 보호하려는 일부 중요한 정보를 데이터베이스에 저장해야합니다.

동적 데이터 마스킹 (https://docs.microsoft.com/en-us/sql/relational-databases/security/dynamic-data-masking)을 사용할 수 있지만 2016 버전부터 지원됩니다.

는 예를 들어, 당신은 전체 필드 숨길 수 :

ALTER TABLE [dbo].[Customers] 
ALTER COLUMN LastName ADD MASKED WITH (FUNCTION = 'default()'); 

enter image description here

또는 부분적인 마스크를 적용

ALTER TABLE Customers 
ALTER COLUMN Phone ADD MASKED WITH (FUNCTION = 'partial(2, "X-XXX-XX", 2)') 

enter image description here