Lưu trữ TẠO NGUỒN DỮ LIỆU BÊN NGOÀI trong một dự án SSDT mà không tiết lộ bí mật TỪ KHÓA TÍN DỤNG hoặc MASTER CHÍNH XÁC;


7

Tôi có một dự án SSDT triển khai cho Azure SQL DB. Gần đây tôi đã thêm một bảng bên ngoài. Điều này đòi hỏi một nguồn dữ liệu ngoài như sau:

CREATE EXTERNAL DATA SOURCE [data_warehouse]
    WITH (
    TYPE = RDBMS,
    LOCATION = N'mydb.database.windows.net',
    DATABASE_NAME = N'MainDW',
    CREDENTIAL = [dw_reader]
    );

Khi tôi nhập cái này vào .sqlproj của tôi, nó phàn nàn rằng thông tin không có ở đó, và sau đó khi tôi thêm rằng nó phàn nàn rằng khóa chính không có ở đó. Vấn đề là tôi không muốn lưu trữ những bí mật đó trong dự án SSDT. Làm cách nào để tôi lưu trữ các hình nộm, hoặc mặc định có thể bị ghi đè và truy xuất từ ​​keyvault azure hoặc phương thức lưu trữ bí mật khác trong Azure Decops?


Làm thế nào để bạn triển khai thay đổi cơ sở dữ liệu? Bạn có thể tham chiếu biến SQL Cmd và chuyển nó vào xuất bản từ đường ống triển khai của bạn. Mặc dù điều đó vẫn cần quản lý về việc đảm bảo tập lệnh xuất bản không được lưu trữ dưới bất kỳ hình thức nào mà không có bí mật được xử lý lại.
Martin Smith

Câu trả lời:


1

Sau khi thử nghiệm, có vẻ như bất kỳ loại bí mật nào trong SSDT chỉ được sử dụng khi đối tượng được tạo, không được cập nhật.

Do đó, nếu sqlproj chứa CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password A';và không có khóa chính tồn tại, thì khóa chính sẽ được tạo bằng mật khẩu đó. Tuy nhiên, nếu sau này thực thi ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'dsjdkflJ435907NnmM#sX003';trên cơ sở dữ liệu, và sau đó triển khai lại sqlproj vào cơ sở dữ liệu, nó sẽ không tạo lại khóa chính.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.