簡體   English   中英

如何在 SAS Proc SQL 中建立只讀的“連接到 ODBC”連接?

[英]How do I make a read-only "Connect to ODBC" connection in SAS Proc SQL?

我正在創建一個 SAS 宏函數,我的同事可以使用該函數通過 ODBC 連接連接到使用 SAS Proc SQL 的各種數據庫,以運行傳遞 SQL 代碼。 我希望連接是只讀的,即使用戶對數據庫具有寫訪問權限。 我可以在 LIBNAME 語句中使用 ACCESS=READONLY 執行此操作:

LIBNAME myLib ODBC NOPROMPT="DATABASE=myDB;Server=myServer;DRIVER={SQL Server};Trusted_Connection=Yes;" ACCESS=READONLY;

我可以像這樣創建讀寫連接:

PROC SQL ;
  CONNECT TO ODBC AS myCon(NOPROMPT="DATABASE=myDB;Server=myServer;DRIVER={SQL Server};Trusted_Connection=Yes;")  ;
  EXECUTE( INSERT INTO myTable(myColumn) VALUES(1) ) BY myCon ; ** insert a row where myColumn=1;
QUIT;

但是在 Connect To ODBC () 中插入 ACCESS=READONLY 作為選項,例如CONNECT TO ODBC AS myCon(ACCESS=READONLY NOPROMPT="DATABASE=myDB;Server=myServer;DRIVER={SQL Server};Trusted_Connection=Yes;") ; ,導致錯誤:無效的選項名稱訪問。

我知道我不能在連接字符串中放入任何內容來使連接成為只讀。 有沒有辦法讓這個Connect to ODBC ...變成只讀連接?

首先,您可以使用 libname!

proc sql;
  connect using mylib;
  ... sql stuff ...
quit;

其次,這將在 ODBC 初始化字符串中(所以在“引號”內)並且取決於您使用的驅動程序。 現代 SQL 服務器驅動程序具有ApplicationIntent=ReadOnly 例如,請參閱v15 驅動程序的此文檔頁面 我不知道舊的{SQL Server}驅動程序是否支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM