![](/img/trans.png)
[英]Cannot find the user '', because it does not exist or you do not have permission
[英]Cannot find the CREDENTIAL because it does not exist or you do not have permission- Azure SQL Server
我有一個 Azure SQL 數據庫,我正在嘗試創建一個外部數據源以將 CSV 數據從 blob 存儲加載到數據庫。
我使用以下查詢創建了一個數據庫范圍的憑據。
CREATE CREDENTIAL [https://forecaststorage01.blob.core.windows.net]
WITH IDENTITY = 'SHARED ACCESS KEY',
SECRET = 'SAS Token';
然后創建了一個外部數據源,
CREATE EXTERNAL DATA SOURCE [demodata]
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://forecaststorage01.blob.core.windows.net',
CREDENTIAL = [https://forecaststorage01.blob.core.windows.net]
);
當我嘗試運行以下查詢時,
SET NOCOUNT ON;
BULK INSERT input.RawData
FROM 'csv-data/egypt_sales_data.csv'
WITH (DATA_SOURCE = 'demodata',
FORMAT = 'CSV');
它說
“無法執行查詢。錯誤:找不到憑據'https://forecaststorage01.blob.core.windows.net',因為它不存在或您沒有權限。'
然后,我使用以下查詢授予對數據庫范圍憑據的訪問權限以使用“dbo”,
GRANT CONTROL ON DATABASE SCOPED CREDENTIAL::[https://forecaststorage01.blob.core.windows.net] TO [dbo]
然后我嘗試再次批量插入。 但它仍然顯示錯誤,
“無法執行查詢。錯誤:找不到 CREDENTIAL 'https://forecaststorage01.blob.core.windows.net',因為它不存在或您沒有權限。”
為什么我無法訪問數據庫范圍的憑據?
如果您嘗試在 Azure SQL 上運行第一條語句,您應該會收到錯誤消息:
'CREATE CREDENTIAL' is not supported in this version of SQL Server.
您必須使用CREATE DATABASE SCOPED CREDENTIAL
命令。 並且IDENTITY
值必須是SHARED ACCESS SIGNATURE
而不是“key”:
CREATE DATABASE SCOPED CREDENTIAL [https://forecaststorage01.blob.core.windows.net]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'SAS Token';
那應該可以解決您的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.