로그인 역할에서 모든 그룹 역할을 취소하는 방법은 무엇입니까? 이 작업을 자동으로 수행하는 방법이 있습니까?로그인 역할에서 모든 그룹 역할을 취소하는 방법
0
A
답변
4
은/빠른 (설정 기반 작업은 루프보다 RDBMS에 정기적으로 빠릅니다) :
DO
$$
BEGIN
EXECUTE (
SELECT 'REVOKE ' || string_agg(quote_ident(rolname), ', ')
|| ' FROM ' || u.usename
FROM pg_user u
JOIN pg_auth_members m ON (m.member = u.usesysid)
JOIN pg_roles r ON (r.oid = m.roleid)
WHERE u.usename = 'my_user'
GROUP BY u.usename
);
END
$$
DO
명령과 물론 string_agg()
aggregate function에는 PostgreSQL 9.0 이상이 필요합니다.
quote_ident()
비표준 식별자로 인해 문제가 발생하지 않습니다 (SQL 인젝션 포함).
효과적으로 같은 명령을 실행 :
REVOKE role_a, role_b, "FROM postgres; DELETE * FROM usr; --" FROM my_user;
그리고 더 GRANT의가 발견되지 않으면 아무것도하지 않습니다.
Note the tricky name in double quotes, but properly quoted by quote_ident()
.
은 BTW :이 모든 GRANT의 "그룹의 역할을"취소 여부. PostgreSQL에 대한 모든 역할이며, 일부는 LOGIN
권한이 있고, 다른 것은 권한이 없습니다 ("그룹 역할"). user
과 group
의 차이점은 history입니다.
0
는 usename로부터 rolname을 취소 할 수있는 결과를 통해 모든 역할
select usename, rolname
from pg_user
join pg_auth_members on (pg_user.usesysid=pg_auth_members.member)
join pg_roles on (pg_roles.oid=pg_auth_members.roleid)
및 LOOP를 조회 할 필요가 있다고 생각; 당신이 한 번에
GRANT
/REVOKE
여러 역할, 동적 SQL 단일
DO
명령은 간단 할 것입니다 수 있기 때문에
관련 문제
- 1. 역할에서 역할을 포함한 모든 사용자를 얻는 방법?
- 2. 현재 사용자 역할에서 모든 역할 가져 오기
- 3. 모든 선택을 취소하는 방법
- 4. 모든 하위보기에서 터치를 취소하는 방법?
- 5. Moodle 로그인 한 사용자의 역할을 찾는 방법
- 6. 로그인 그룹
- 7. 로그인 컨트롤에서 사용자 역할을 확인하는 방법 로그인 컨트롤에서 클릭 이벤트?
- 8. Kohana에서 모든 사용자 역할을 삭제하는 방법 3
- 9. GridView - asp.net에서 모든 행을 선택 취소하는 방법?
- 10. Facebook 로그인을 취소하는 방법?
- 11. asp.net에서 역할을 활성화하는 방법?
- 12. 사용자 역할에서 시작일과 종료일을 구현하는 방법
- 13. 로그인 한 사용자가 Asp.Net 회원의 여러 역할을 확인하는 방법?
- 14. iOS 표보기 - 모든 셀의 모든 버튼을 선택 취소하는 방법?
- 15. 관리자가 특정 역할에서 사용자를 만들도록하십시오
- 16. 역할을 확인하는 방법
- 17. ASP.Net에서 웹 페이지의 역할을 보호하는 방법은 무엇입니까?
- 18. UILocalNotification을 등록 취소하는 방법
- 19. 수십 개의 역할에서 역할 확인
- 20. C# 특정 역할을 가진 RoleProvider 로그인
- 21. 번들 업데이트를 취소하는 방법
- 22. 바인딩 ObjectDataSource를 취소하는 방법?
- 23. tortoisesvn 업데이트를 취소하는 방법
- 24. 안드로이드에서 HttpRequest를 취소하는 방법
- 25. symfony2 역할/그룹 - is_granted가 사용자의 역할을 감지하지 못합니다.
- 26. Active Directory에 모든 그룹 및 그룹 구성원을 쿼리하는 방법?
- 27. 사용자, 그룹 및 권한이있는 로그인
- 28. Zend_ACL 역할을 얻는 방법?
- 29. Git 롤백을 취소하는 방법
- 30. uitouches를 취소하는 방법?
감사합니다. Erwin, 답변입니다. –