2013-02-27 3 views
2

는 사용자를 생성, 다음MySQL의 사용자 행 수준 액세스

id | userid | name 
1 | 1 | John 
2 | 1 | John 
3 | 2 | Joe 
4 | 2 | Joe 
5 | 2 | Joe 
6 | 3 | Sue 
7 | 3 | Sue 

나는 데이터베이스를 만들 수있는 방법을 얻을 필요가있는 데이터베이스가. mysql에서 생성 한 각 사용자는 userid에 대한 데이터 액세스를 제한합니다. 데이터베이스의 모든 데이터베이스 테이블에는 사용자 ID 값이 있습니다.

읽기, 업데이트, 삽입 또는 삭제 여부에 관계없이 해당 데이터베이스에 연결된 특정 mysql 사용자를 통해 이동하는 경우 해당 사용자가 자신의 userid가있는 위치 만 읽거나, 업데이트하거나, 삽입하거나 삭제하기를 원합니다.

mysql 트리거에서 몇 가지를 읽었지만 나에게 도움이 될만한 것을 찾지 못했습니다.

우리는 데이터가 있고 사용자 ID에 의해 제한되는 백엔드를 가지고 있습니다.

웹 사이트는 userid를 기반으로 해당 테이블의 데이터를 가져옵니다 (select * from articles where userid=1). 현재이 코드는 사용자가 수정할 수 있습니다. 기사에서 mysql 사용자를 위해 userid=1을 가진 결과 행만 select *로 이동하는 방법을 원합니다. 목표는 모든 사용자가 mysql 데이터베이스에 로그인하여 자신의 고유 한 userid 값을 제한하는 것입니다.

의견이 있으십니까? 정말 고마워!

답변

2

GoogleResult[0]이 있습니다

http://www.sqlmaestro.com/resources/all/row_level_security_mysql/

추상이 문서는 MySQL의 5.0 행 수준 보안 구현 단계별로 높은 사용하여 MySQL과 기능 등을 포함

보기 및 트리거.

+0

링크를 보내 주셔서 감사합니다. 단계별로 단계적으로 길을 잃은 것 같습니다. 좀 더 단순화 된 버전이 있습니까? 비디오일까요? 나는 php에서는 강하지 만, 좀 더 진보 된 db에 대해서는 매우 강합니다. – John

0

글쎄! 나는 그것을 위해 테이블을 만들 것을 제안 할 것이다. 전체 신청서의 경우

user_rights 

id | user_id | insert | update | delete | read 
1 | 2  | 0  | 0  | 0 | 1 

주 : 허용되는 경우 1, 허용되지 않는 경우 0.

먼저 권한을 확인한 다음 다른 작업을 수행하십시오. 응용 프로그램의 일부를 포함

자세한 방법은 화면 수준의 액세스를 허용 할 수 있습니다이 방법

screens 

id | title 
1 | articles 
2 | blog 

user_rights 

id | user_id | insert | update | delete | read | screen_id 
1 | 2  | 1  | 0  | 0 | 1 |  1 
2 | 2  | 0  | 0  | 0 | 1 |  2 

. 사용자 ID 2는 기사를 추가하고 볼 수 있으며 블로그를 볼 수도 있습니다. 여기에 부적절한 용어가 사용되었을 수 있습니다. 하지만 아이디어를 얻길 바랍니다.