2013-07-18 64 views
1

我正與其他一些合作者合作開展一些數據項目。大多數人對SQL都比較陌生,因此詢問我是否可以將「原始」數據表設置爲只讀,以避免意外更改,我該怎麼做?目前所有用戶都有GRANT SELECT ON mydb.* TO 'user'@'%'權限,但我需要更加開放一些。如何讓某些表爲只讀但允許用戶創建新表?

有一個關於製作single table read-only的問題,但它似乎會拒絕用戶製作其他表格的能力;或者如果他們這樣做,他們就不能對他們做任何事情。似乎沒有(或者我找不到)像NTFS中的'拒絕'設置,覆蓋允許/ GRANT;從我讀到的REVOKE只是與之前的GRANT相反,你不能「嵌套」它們。

我正在考慮製作一個單獨的'原始'數據庫,它只是選擇性的,因此用戶可以將它複製到'工作區'數據庫中,但是這看起來有點冒失,並且會佔用一些半量的空間我的預算雲服務器。什麼是適當的解決方案?

回答

0
GRANT SELECT ON example.* to 'someuser'@'somehost'; 

給予只讀權限。

GRANT CREATE ON example TO 'someuser'@'somehost'; 

給予創建表特權。

+0

在沒有GRANT INSERT等權限上,他們創建表的,是它基本上沒有意義的,因爲它總是坐在空的? –

+0

是的。沒有先進的特權,任何事情都無法完成。 – oldmonk

相關問題