2016-04-24 135 views
2

單獨的數據庫設置我想在Postgresql 9.4級別(因此我不會使用Django權限系統)作爲數據所有者和其他讀取訪問權限的角色。根據登錄Django 1.8用戶

換句話說: PG作用data_owner(內容管理器) - > Django的組出版社(RW) PG作用data_user(內容讀取器) - > Django的訂戶組(R)

數據擁有者角色(通過發佈者組)將負責爲應用程序提供數據,而其他用戶只是具有隻讀訪問權的檢索者。

像活動流這樣的一些表需要爲所有用戶讀寫。

那麼的做法是:

  • 內容表:角色data_owner RW,其他[R
  • 功能表:所有RW

可選:

  • 配置表:角色system_owner rw,ohters r

其中r表示選擇權限,w表示插入,更新和刪除權限。

這怎麼能更好的實現?

回答

0

也許最簡單的方法是定義在settings.py兩個數據庫:

DATABASES = { 
    'default': { 
     'NAME': 'my_db', 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'USER': 'data_owner', 
     'PASSWORD': 's3krit' 
    }, 
    'users': { 
     'NAME': 'my_db', 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'USER': 'data_user', 
     'PASSWORD': 'priv4te' 
    } 
} 

,然後在視圖中,訪問與使用模型()功能,像這樣:

# This will run on the 'default' database. 
objects.all() 

# So will this. 
objects.using('default').all() 

# This will run on the 'users' database. 
objects.using('users').all() 

此外,您還可以選擇一個數據庫中保存這樣的:

my_object.save(using='_users') 

來源:https://docs.djangoproject.com/en/1.8/topics/db/multi-db/

還有其他建議嗎?