2012-07-17 5 views
0

기존 Sybase 사용자의 권한을 새 계정으로 복사하는 방법은 무엇입니까? 예를 들어 일부 테이블에는 선택 권한 만 있고 많은 procs에는 실행 권한이 있습니다. 원래 계정에는 데이터베이스 개체 수백 개 중 수십 개의 테이블과 여러 저장된 procs에 대한 액세스가 제한되어있었습니다.기존 사용자의 Sybase 권한을 복제하고 있습니까?

답변

1

여러 번 이렇게 할 경우 역할을 만들고 역할에 권한을 부여하고 해당 역할에 사용자를 할당하십시오.

경우에는 중요하지 않은 데이터베이스에서 무엇을하고있는 감사 : 별칭

sp_dropuser 'NEW_USERNAME' 
go 
sp_addalias 'NEW_USERNAME', 'EXISTING_USERNAME' 
go 

sp_helprotect의 EXISTING_USERNAME가 해당 사용자에 대한 권한 목록을 인쇄 할 데이터베이스에서 이전 사용자에 대한 새 사용자. 해당 출력을 캡처하여이를 사용하여 새 계정에 사용 권한을 추가 할 수 있습니다.

다음 단계를 수행하려면 시스템 테이블을 편집해야합니다. 시스템을 손상시키지 않도록주의하십시오. 좋은 백업이 있는지 확인하십시오. *

사용자 권한은 sysprotects 테이블에 저장됩니다. 이론적으로 당신이 할 수 있어야한다 :

  1. 는 sysprotects에서 어떤 역할이나 별칭
  2. 선택 권한을 추가 데이터베이스에 사용자를 새 사용자 추가 로그인
  3. 만들기 곳 임시 테이블에 UID = EXISTING_USER_ID.
  4. 업데이트 임시 테이블과는 NEW_USER의 UID에에
  5. sp_configure를 사용 sysprotects에 레코드를 삽입하는 시스템 테이블
  6. 를 사용하여 업데이트 된 임시 테이블에 대한 업데이트를 허용하는
  7. sp_configure를 사용을 EXISTING_USER에서 UID를 변경 시스템 테이블에

부인을 업데이트를 허용하지 내가 테스트하지대로이 작동 확인, 프로덕션 서버에 그것을 시도하기 전에이를 테스트하십시오.

관련 문제