나는 8 개의 열을 포함하는 하나의 데이터베이스 테이블을 가지고 있습니다. 열 중 하나는 IsAdmin
(데이터 유형은 Bit)입니다. 로그인 한 사용자가 관리자 인 경우에만 그리드보기에 사용자 목록을 표시해야합니다.데이터 가져 오기
어떻게하면됩니까? 어떤 절이 사용됩니까?
나는 8 개의 열을 포함하는 하나의 데이터베이스 테이블을 가지고 있습니다. 열 중 하나는 IsAdmin
(데이터 유형은 Bit)입니다. 로그인 한 사용자가 관리자 인 경우에만 그리드보기에 사용자 목록을 표시해야합니다.데이터 가져 오기
어떻게하면됩니까? 어떤 절이 사용됩니까?
나는 당신을 올바르게 이해하고 있는지 잘 모른다. 당신이 찾고있는 "사용자 목록"이 당신이 선택하고있는 테이블이기도합니까? 내 이해는 이것이 당신이 필요로하는 것입니다 :
if exists (
select *
from MyUserList
where IsAdmin = 1
and UserName = SUSER_NAME()
)
begin
select *
from MyUserList /* Or whatever you need to do if the user is admin */
end
else
begin
/* Do whatever you need to do if the user is not an admin */
end
아마도 SQL 대신 응용 프로그램에서이 작업을 수행하는 것이 좋습니다. 응용 프로그램이 누가 누가 관리자인지 확인하고 세션 또는 쿠키에 넣고 페이지가로드 될 때 세션/쿠키 검사를 수행하여 사용자가 관리자인지 확인하고 정보를 표시하는지 확인합니다.
SQL에서 원할 경우 테이블 구조 및 테이블 이름과 같은 몇 가지 추가 정보를 제공해야합니다. 당신이 절을 필요로하지만, 응용 프로그램에서 비즈니스 로직에 의해 처리되어야처럼 매트
은 나에게 소리를하지 않습니다.
로그인 한 사용자가 관리자 인 경우에만 목록을 표시하려면 사용자가 관리자가 아닌 경우 쿼리 실행에 아무런 포인트가 없습니다. 불필요한 db에 대한 왕복입니다.
대신, 응용 프로그램에서 당신이 선택해야로서,
이 솔루션은 너무 간단하다 "로그인 한 사용자가 관리자 인 경우 다른하지 않는 그리드보기를 채 웁니다"라고 어떤 논리를 가지고 특정 데이터 사용자가 관리자의 역할과 그 밖의 다른 데이터를 선택하거나 아무 것도 할 수 있으므로 다음 코드한다면 :이 사용자 ID 및 자신의 역할에 관련된 데이터를 선택합니다이 경우
select * from [UserList] where IsAdmin = @UserRole and UserID = @UserID
합니다.
문제를 이해하는 데 도움이되기를 바랍니다.
사용자는 ** 관리자 만 인 경우 ** IsAdmin ** 열을 표시하거나 관리자 인 경우 모든 기록을 표시해야합니까? – TheVillageIdiot
추가 정보가 필요합니다. 무엇에 서명 했습니까? 어떤 기술/프레임 워크를 사용하고 있습니까? 그가 관리자 인 경우 –
모든 레코드. – MAC