2015-01-14 1 views
3

내 SQL 데이터베이스에는 특정 테이블의 데이터를 업데이트/삭제할 수있는 다른 권한을 가진 여러 사용자가 있습니다. 특정 테이블 열의 값을 기반으로 사용자에게 권한을 부여 할 수 있습니까? 더 나은 설명을 드리겠습니다. 사용자가 해당 테이블에서 데이터를 삭제할 수있는 권한이 있다고 가정 해 보겠습니다. 단, 해당 행의 열 값이 true 인 경우에만 사용하십시오. 사실이라면 그 행을 삭제할 수 있습니다. 거짓이라면 그만 두지 않을 것입니다.상태로 행 보안 설정

+0

SELECT * FROM YourTable WHERE COLUMN IS TRUE 같은보기를 만듭니다. 이제이 VIEW에서 DELETE perfimssion을 제공하십시오. 이 일은 잘 모르겠다. –

+1

문제는 그것보다 복잡합니다. 나는 오직 진실만을 가진 열과 함께 할 수 없다. 그것은 내 응용 프로그램의 여러 곳에서 사용됩니다. 해당보기를 변경하려면 너무 많거나 2 개의 별도보기를 수행하십시오. 조건과 함께 삭제 권한을 적용해야합니다. – Whencesoever

답변

2

삽입, 업데이트 및 삭제시 트리거를 사용하여 액세스 할 수 있다고 생각합니다. 사용자 권한 매핑이있는 테이블/테이블과 변경 값 앞에 권한을 확인해야합니다. 하지만 정말로 필요합니까? 변경 사항이 많으면 드라마가 될 것입니다. 또 다른 질문은이 시나리오를 SQL Server에 구현해야하는지입니다. 응용 프로그램 계층에서 permiission을 확인하는 것이 더 좋을 것 같습니다. 응용 프로그램이 있다고 가정하면

+0

다른 생각은 실제로 트리거를 사용하고있었습니다. 그래서 내가 할 필요가 SQL 계층에 불가능합니다? 특정 행의 조건에 따라 권한을 부여 하시겠습니까? – Whencesoever

+0

및 ufortunatelly 다른 시나리오와 같은 50-60 장소에서 사용됩니다. 사람들이 해당 데이터를 삭제할 수 있으며 권한 수준을 추가하려고합니다. – Whencesoever

+0

나는 이것을 발견했다 : http://www.mssqltips.com/sqlservertip/3030/implementing-sql-server-row-and-cell-level-security/ 그리고 이것 : http : //blogs.msdn. com/b/publicsector/archive/2011/08/23/row-level-security-for-sql-server-2008.aspx 시나리오와 일치하는지 확인하십시오 – sdrzymala