2013-10-09 4 views
4

그래서 우리는 테이블을 갱신, 삽입 및 삭제해야하는 제한된 사용자와 테이블을 작성, 변경 및 삭제할 수있는 사용자를 보유하고 있습니다.alembic에서 만든 모든 소유자에 대해 다른 소유자를 설정하려면 어떻게해야합니까?

우리는 데이터베이스를 마이그레이션하기 위해 alembic을 사용하므로 두 번째 사용자는 마이그레이션을 실행해야하지만 첫 번째 사용자는 테이블을 사용할 권한이 없습니다.

물론 나는 postgres의 특정 코드를 실행하여 alembic이 만든 모든 항목에 대해 소유자를 개별적으로 변경할 수 있지만 올바른 것은 아닙니다. 어떻게 해결할 수 있을까요? 아니면이 포스트 그레스 문제입니까? 한 데이터베이스의 존재하지 않는 테이블에 user1 항목을 부여하는 방법을 알 수 없습니다.

답변

0

나는이 오래된 질문 알고 있지만 나도 같은 문제를 만나 그 두 가지 좋은 솔루션을 발견 :

1. 빠르고 쉬운 - 업그레이드 템플릿에 일반 grant 명령을 추가 (script.py합니다. 마코) : 광산 따라서 같습니다

def upgrade(): 
    ${upgrades if upgrades else "pass"} 
    sql = "grant all on all tables in schema public to simpleuser" 
    op.execute(sql) 

2. 당신은 너무 일반적 grant 문에 만족하지 않으면, 당신은 테이블 후 특정 grant 명령을 추가 할 수 증류기에서 create_table 지침을 변경하는 시도 할 수 있습니다 창조. 나는이 태도가 너무 불필요하게 너무 복잡하다는 것을 알았지 만, 만약 당신이 원하는 방향으로 alembic api에 대해 읽어보십시오. here

P. 테이블에 대한 액세스 권한을 부여 할 때 일련 번호가있는 경우 시퀀스를 잊지 마십시오

+0

고마워요 :) 마침내 저는 계속 작업 할 수 있습니다/jk 수년 동안 Python을 사용하지 않았습니다. – Giszmo