2019年6月19日 星期三

[ORACLE] 建立唯讀權限的帳號

--建立唯讀權限帳號
CREATE USER readonly_user
 IDENTIFIED BY readonly_user
 DEFAULT TABLESPACE users
 TEMPORARY TABLESPACE temp;
GRANT CREATE SESSION to readonly_user

--建立JOB,每日00:00 GRANT一次權限

DECLARE
  x NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
  ( job       => x
   ,what      => 'BEGIN
                       FOR i IN (SELECT table_name FROM all_tables WHERE owner='myuser')
                         LOOP
                              EXECUTE IMMEDIATE 'GRANT SELECT ON myuser.' || i.table_name || ' TO readonly_user';
                         END LOOP;
                       END;'
   ,next_date => to_date('20/06/2019 00:00:00','dd/mm/yyyy hh24:mi:ss')
   ,interval  => 'null'
   ,no_parse  => FALSE
  );
  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;

2017年3月9日 星期四

[SQL SERVER] 在Windows Server 2016上安裝設定SQL Server 2016 Cluster(本地) & Alwayson(異地)(五)安裝設定AlwaysOn

繼[在Windows Server 2016上安裝設定SQL Server 2016 Cluster(本地) & Alwayson(異地)(四)安裝設定SQL Server 2016 Cluster]後開始安裝設定AlwaysOn

P.S. SQL Server Management Studio在SQL Server 2016須另行下載安裝,網址如下
下載SQL Server Management Studio

AlwaysOn安裝設定程序(請注意以下安裝有的在主機C01,有的在主機rdag)
在drag主機上
安裝SQL Server 2016
01. 在[伺服器管理員,儀錶板]視窗中點選[管理]>[新增角色及功能]

02. 在[在您開始前]視窗中按[下一步]

03. 在[選取安裝類型]視窗中按[下一步]

04. 在[選取目的地伺服器]視窗中按[下一步]

05. 在[選取伺服器角色]視窗中按[下一步]

06. 在[選取功能]視窗勾選[.NET Framework功能]以及[容錯移轉叢集]


07. 在[新增角色及功能精靈]視窗按[新增功能]
08. 回到[選取功能]視窗按[下一步]

09. 在[確認安裝選項]按下[指定替代來源路徑]

10. 在[指定替代來源路徑]視窗的[路徑]欄位輸入在Windows server 2016光碟中的路徑[sources\sxs]後按下[確定]

11. 回到[確認安裝選項]按下[安裝]

12. 在[安裝進度]視窗按下[關閉]

13. 執行SQL Server 2016安裝程式後在[SQL Server 安裝中心]視窗點選[安裝]>[新增SQL Server獨立安裝或將功能加入至現有安裝]


14. 在[產品金鑰]視窗按[下一步]


15. 在[授權條款]視窗勾選[我接受授權條款]後按[下一步]


16. 在[Microsoft Update]視窗按[下一步]


17. 在[產品更新]視窗按[下一步]

18. 在[安裝規則]視窗按[下一步]


19. 在[特徵選取]視窗按下[全選]後按[下一步](此步驟請依實際需求勾選,此範例中下圖紅框處皆取消勾選)


20. 在[執行個體組態]視窗按[下一步]


21. 在[PolyBase組態]視窗按[下一步]


22. 在[伺服器組態]視窗中勾選[對SQL Server Database Engine服務授予[執行磁碟區維護工作]權限],並將所有服務的[帳戶名稱]欄位輸入[dba\dbadmin],在[密碼]欄位輸入對應的密碼後按[下一步]


23. 在[資料庫引擎組態]視窗中勾選[混和模式],在[指定SQL Server系統管理員帳戶的密碼]欄位輸入[密碼],按下[加入]


24. 在[選取使用者,電腦,服務帳戶或群組]視窗的[輸入物件名稱來選取]欄位輸入[dbadmin]後按下[檢查名稱]再按下[確定]


25. 回到[資料庫引擎組態]點選[資料目錄]頁籤,變更目錄到指定位置(如下圖)後按[下一步]


26. 在[Analysis Services組態]視窗按下[加入]


27. 在[選取使用者,電腦,服務帳戶或群組]視窗的[輸入物件名稱來選取]欄位輸入[dbadmin]後按下[檢查名稱]再按下[確定]


28. 回到[Analysis Services組態]視窗按[下一步]



29. 在[Reporting Services組態]視窗點選[安裝換設定]後按[下一步]


30. 在[準備安裝]視窗按[安裝]


31. 在[完成]視窗按[關閉]


在C01主機上(節點一)
32. 開啟[伺服器管理員 儀錶板]>[工具]>[容錯移轉叢集管理員]

33. 在[容錯移轉叢集管理員]視窗中在[容錯移轉叢集管理員]>[oscluster.dba.local]>[節點]上右鍵[新增節點]

34. 在[在您開始前]視窗按[下一步]

35. 在[選取伺服器]視窗中的[輸入伺服器名稱]欄位輸入[drag]後按[新增]

36. 回到[選取伺服器]視窗中按[下一步]

37. 在[驗證警告]視窗點選[否]後按[下一步]

38. 在[確認]視窗按[下一步]

39. 在[摘要]視窗按[完成]

40. 回到[容錯移轉叢集管理員]視窗中可以看到新增的主機

41. 開啟[SQL Server 2016組態管理員]

42. 在[使用者帳戶控制]視窗按[是]

43. 在[Sql Server Configuration Manager]視窗點選[SQL Server組態管理員(本機)]>[SQL Server服務],在[SQL Server(MSSQLSERVER)]上右鍵[內容]

44. 在[SQL Server (MSSQLSERVER)-內容]視窗,點選[AlwaysOn高可用性]頁籤,勾選[啟用AlwaysOn高可用性群組]後按[確定]

45. 在[警告]視窗按[確定]

46. 在[容錯移轉叢集管理員]視窗中在[容錯移轉叢集管理員]>[oscluster.dba.local]>[角色]>[SQL Server(MSSQLSERVER)]上右鍵[停止角色]

47. 回到[容錯移轉叢集管理員]視窗中在[容錯移轉叢集管理員]>[oscluster.dba.local]>[角色]>[SQL Server(MSSQLSERVER)]上右鍵[啟動角色]

在DRAG主機上
48. 開啟[SQL Server 2016組態管理員]

49. 在[使用者帳戶控制]視窗按[是]

50. 在[Sql Server Configuration Manager]視窗點選[SQL Server組態管理員(本機)]>[SQL Server服務],在[SQL Server(MSSQLSERVER)]上右鍵[內容]

51. 在[SQL Server (MSSQLSERVER)-內容]視窗,點選[AlwaysOn高可用性]頁籤,勾選[啟用AlwaysOn高可用性群組]後按[確定]

52. 在[警告]視窗按[確定]

53. 回到[Sql Server Configuration Manager]視窗點選[SQL Server組態管理員(本機)]>[SQL Server服務],在[SQL Server(MSSQLSERVER)]上右鍵[重新啟動]

在C01主機(節點一)
54. 開啟[Microsoft SQL Server Management Studio]

55. 在[連接到伺服器]視窗的[伺服器名稱]欄位輸入[SQLCLUSTER01]後按[連接]

56. 在[Microsoft SQL Server Management Studio]視窗點選[SQLCLUSTER01]>[AlwaysOn高可用性]上右鍵[新增可用性群組精靈]

57. 在[簡介]視窗按[Next]

58. 在[指定可用性群組名稱]視窗的[可用性群組名稱]欄位輸入[myAg],勾選[資料庫層級健康情況偵測]後按[Next]

59. 在[選取資料庫]勾選[TestAg]後按[Next]
       P.S. 要做AlwaysOn資料庫必須有做過完整備份方符合必要條件

60. 在[指定副本]視窗中按下[加入副本]


61.  在[連接到伺服器]視窗的[伺服器名稱]輸入[drag]後按下[連接]


62. 回到[指定副本]視窗中勾選[DRAG]的[同步認可]後按[Next]
P.S.
1. 因為DRAG為異地備援機本地有Cluster服務,為了避免當Cluster其中一台毀損時切換到異地備援機,故不勾選[自動容錯移轉]。
2. [同步認可]選項要注意如果本異地網路速度慢或是交易量大勾選[同步認可]有可能會讓較易變慢。


63. 在[指定副本]視窗點選[備份喜好設定]頁籤,勾選[主要]後按[Next]
P.S. 在[主要]才能備份交易紀錄檔,如果有此需求請將[主要]打勾


64. 在[選取初始資料同步處裡]視窗點選[完整],在[指定所有副本皆可存取的共用網路位置]輸入[\\C01\c$\myAg_Tmp]後按[Next],P.S. 此路徑可自訂


65. 在[驗證]視窗按[下一步]
P.S. 主要跟各副本機的資料庫檔案路徑須完全相同否則下圖紅色框會出現錯誤且無法Next


66. 在[摘要]視窗按[Finish]


67. 在[結果]視窗按[Close]


檢查AlwaysOn設定
68. 在[Sql Server Configuration Manager]視窗連線到[SQLCLUSTER01]及[DRAG]可以看到[TsetAg]狀態皆在同步處理

設定Listener
69. 在[Sql Server Configuration Manager]視窗中[SQLCLUSTER01]>[AlwaysOn高可用性]>[可用性群組]>[myAg]>[可用性群組接聽程式]上右鍵[加入接聽程式]


70. 在[新增可用性群組接聽程式]視窗中的[接聽程式DNS名稱]欄位輸入[myAgListener],[通訊]欄位輸入[1433],下拉[網路模式]選[靜態IP]後按[加入]


71. 在[加入IP位址]視窗的[IPv4位址]欄位輸入[192.168.100.60]後按下[確定]


72. 回到[新增可用性群組接聽程式]視窗按[確定]


驗證
73. 開啟[Sql Server Configuration Manager]程式在[連接到伺服器]視窗中[伺服器名稱]欄位輸入[myaglistener]後按下[連接]


74. 在[新增查詢]視窗中輸入[select @@servername],可以看到目前主要是在哪台機器上