在使用Oracle數據庫時,我經常讀到不應該使用SYS來操作數據庫(創建表,約束,序列,同義詞等)。爲什麼不推薦?我的一些同事爭辯說,只要你使用完全限定的描述符,使用SYS應該沒有問題。這是真的? 通過將數據庫作爲SYS進行操作可能會導致哪些情況會導致哪些問題?爲什麼在操作Oracle數據庫時不推薦使用「SYS」?
回答
通過將SYSS操作爲 數據庫,在哪些情況下可能會導致哪些問題?
兩者SYS
和SYSTEM
是default
用戶,創建數據庫的創建。雖然他們有很多權力 - 因爲他們被授予DBA role
- 他們仍然是普通用戶。因爲SYS
擁有數據字典,所以他被認爲比SYSTEM
更特別一些。
但是SYS
具有SYSDBA權限,SYSTEM沒有。這使得SYS
成爲非常強大的用戶成爲可能。 如果您嘗試將shutdown
數據庫設置爲普通SYS
,則區別將變得清晰:您將得到insufficient privileges
。但是,如果以SYSDBA連接,則可能。
注意,SYSDBA
不是一個角色,它是一個privilege
。
SYS也是特別的,不可能在sys模式中創建觸發器。此外,當sys連接到數據庫時,不會執行登錄觸發器。
SYS
SYS
是數據庫的所有者和數據字典的所有者。
永遠不要在SYS模式中創建對象。
屬於SYS的對象無法導出。
SYSTEM
SYSTEM
是特權管理用戶,並且通常擁有Oracle提供比字典其他表。不要在SYSTEM下創建自己的對象。
由於SYS擁有數據庫。
它可以做任何事情。如果您的同事忘記將目標對象作爲目標架構的前綴,則可能會損壞SYS架構和/或損壞數據庫。
如果有太多人知道SYS密碼,我會擔心。因爲它會造成審計問題。當出現問題時,除非他們自己負責,否則很難知道誰是負責任的。不要說責備文化是一種好文化,但是當人們知道自己是負責任的時候,他們會更加小心。
這不僅僅是一件安全的事情。這不僅是你需要擔心的意外腐敗。具有SYS密碼的不良演員可以破壞數據庫,竊取代碼(IPR),當然也可以竊取機密數據。
也許你只是在談論發展,並且你的組織在生產中正確地做事情。我確實希望如此。
使用SYS就像穿過鐵路軌道的捷徑。可能你會沒事的,但爲什麼冒這個險?
- 1. SnappyData作爲操作數據庫。是否推薦?
- 2. 爲什麼Logger.isInfoEnabled不推薦使用org.jboss.logging.Logger?
- 3. 爲什麼不推薦使用isJavaLetterOrDigit?
- 4. 爲什麼不推薦使用JButton.enable?
- 5. 爲什麼不推薦使用struts2 FilterDispatcher?
- 6. 爲什麼SET不推薦使用?
- 7. 爲什麼不推薦使用StringTokenizer?
- 8. std :: iterator爲什麼不推薦使用?
- 9. Object.observe()爲什麼不推薦使用
- 10. 爲什麼不推薦使用std :: strstream?
- 11. 爲什麼不推薦使用body.scrollTop?
- 12. 無法使用Oracle SQL Developer登錄數據庫作爲SYS
- 13. 爲什麼不通過推薦工作?
- 14. 爲什麼不推薦HibernateTemplate?
- 15. 爲什麼不推薦使用window.showModalDialog?代替使用什麼?
- 16. 爲什麼不推薦使用assert_template,而應該使用什麼?
- 17. 爲什麼ORACLE 8中不推薦使用LONG RAW Oracle列類型?
- 18. 爲什麼不推薦使用JScript實現WiX中的自定義操作?
- 19. 數據庫推薦
- 20. 你推薦什麼JavaScript庫?
- 21. PHP對不推薦使用的函數有什麼作用?
- 22. 什麼時候推薦使用MySQL BLOB?
- 23. jQuery切換不推薦使用什麼?
- 24. 如何找出iOS中爲什麼不推薦使用函數?
- 25. 爲什麼不推薦使用包org.apache.hadoop.mapred中的大多數類?
- 26. 在C++中操作空間數據的推薦框架是什麼?
- 27. 爲什麼string.h庫中有太多函數是「不推薦使用」的呢?
- 28. 爲什麼在Rails中不推薦使用auto_link?
- 29. 爲什麼在Python中不推薦使用MutableString?
- 30. 爲什麼在PHP中不推薦使用`ereg`?
問問你的同事他們是否在他們的計算機上作爲'root'工作。作爲'SYS'工作與'root'相同 - 你只做維護工作,但不寫電子郵件或文檔。 –