副标题 - 如何在没有中间人攻击的情况下真正安全地连接到 SQL Azure?
我可以使用 TrustServerCertificate=true 的 ADO.net 连接字符串并成功连接到服务器。但是,如果这样做,我将失去对中间人攻击的保护,其中与服务器的通信被劫持,并且使用未知的证书来建立连接。所以我想使用TrustServerCertificate=false。
唯一的问题是,现在我收到连接失败信任验证的错误。我希望解决此问题的方法是我需要在我的证书存储之一中安装 SQL Azure 的服务器证书。问题是我不知道如何获取服务器证书。帮助?
下面是使用 Azure 管理库创建数据库,我想知道如何将现有数据库还原到 Azure 上的时间点。
// Crate Authenticate
var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal("{clientId}", "{client-secret}", "{teantId}", AzureEnvironment.AzureGlobalCloud);
// Connect Azure
var azure = Azure
.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(credentials)
.WithDefaultSubscription();
// Create TestDB
var sqlServer = azure.SqlServers.GetById("{sql-server-Id}");
sqlServer.Databases.Define("TestDB").Create();
// Point-in-time restore ???
Run Code Online (Sandbox Code Playgroud) 我在 SSIS 包中选择行时出现超时...(完整的错误详细信息如下)。
我不能跑
EXEC sp_configure '远程查询超时', 300 ;
因为它是 SQL Azure。
除了增加DTU之外,有没有办法将远程连接扩展到azure服务器?我唯一的目的是偶尔在 SSIS 上运行一些大查询......
错误:System.Data.SqlClient.SqlException (0x80131904):执行超时已过期。操作完成前超时时间已过或服务器未响应。---> System.ComponentModel.Win32Exception (0x80004005): System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action) 处的等待操作超时
1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader stateObj,TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) dataReady) 在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() 在 System.Data.SqlClient.SqlDataReader.get_MetaData() 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader …
我们有一个 sqlproj针对本地 SQL 2014 的。生成和发布按 Visual Studio 的预期工作。
现在我们正在尝试使用 VS Online 构建数据库项目并将其部署到 Azure 数据库 v12。我们收到错误,指出 SSDT 目标数据库错误。这是有道理的,因为 Azure 数据库和 SQL 2014 支持不同的功能并产生不同的警告/错误。我们在网上找到的每篇文章/帖子都展示了如何在设计时从 GUI 更改目标平台。
我们的假设是平台可以在构建时定位,与更改类库的目标平台相同。但是,我们无法找到 sqlproj 目标平台的可用参数列表。
有没有人有链接或知道要为 VS Online 构建参数设置的 key=value 属性?
谢谢
我在 Azure SQL 数据库中有一个表,我想根据某些条件从 Azure Databricks 中删除选定的行或整个表。目前我正在使用JDBC的truncate属性来截断整个表而不删除它,然后用新的数据帧重写它。
df.write \
.option('user', jdbcUsername) \
.option('password', jdbcPassword) \
.jdbc('<connection_string>', '<table_name>', mode = 'overwrite', properties = {'truncate' : 'true'} )
Run Code Online (Sandbox Code Playgroud)
但是以后我不想每次都截断和覆盖整个表,而是使用 delete 命令。我也无法使用下推查询来实现这一点。对此的任何帮助将不胜感激。
pyspark pyspark-sql azure-sql-database databricks azure-databricks
我需要删除所有外部表,因为我需要重新创建外部数据源。但是,您不能删除带有使用该特定数据源的外部表的外部数据源。但是,我不想输入所有表的名称来删除它们。
我搜索了 Stack Overflow,实际上无法找到这个特定问题的答案。我找到了关于删除所有表的更一般问题的答案,并且能够修改解决方案。我提出这个问题是为了记录我能够创建的解决方案,因此您想知道这个特定问题或使用更通用的方法删除 SQL DB 的元素,您可以使用此解决方案。
我使用数据分类敏感度标签对 Azure SQL 数据库中的一些列进行了分类。在数据库对应的SSDT项目中,存在如下SQL语句:
ADD SENSITIVITY CLASSIFICATION TO
[dbo].[tablename].[UserName]
WITH (LABEL = 'Confidential', LABEL_ID = 'guid1'
, INFORMATION_TYPE = 'Credentials', INFORMATION_TYPE_ID = 'guid2');
Run Code Online (Sandbox Code Playgroud)
SSDT 项目在 VS 2019 以及 Azure DevOps 构建管道中的构建任务中构建良好。正如预期的那样,我不得不使用 VS 2019(托管)代理,因为以前版本的 SSDT 无法识别该 SQL 语法。
在管道中,该项目的 DACPAC 已成功构建。然后我尝试使用 Azure SQL 数据库部署任务部署该 DACPAC。它使用在托管代理上的 C:\Program Files\Microsoft SQL Server\150\DAC\bin\ 中找到的 SqlPackage.exe 版本。它显然无法识别这些 SQL 语句并且失败并出现以下错误:
元素或注释类 SqlSimpleColumn 不包含属性类 SensitivityLabel。
有没有办法将更新的 SqlPackage.exe 部署到托管构建代理,还是我一直在等待 Microsoft 更新映像?有没有办法将参数传递给 SqlPackage.exe 指示它忽略这些语句?
我想将我们数据仓库的表、过程、用户等复制到新的登台 DW,但我不需要任何数据。
我尝试使用 Redgate SQL Compare 创建快照并收到错误消息,指出不支持 DW 快照。我也试过编写 DW 脚本,但我收到一条错误消息,提示“版本 13.0.0 的 SqlAzureDatabase SQL Server 的 SqlDatabase 版数据库不支持‘DwTableDistribution’属性”。
我剩下的唯一想法就是恢复 prod DW 的完整副本并清除数据,但是当我只需要 DW 的骨架时,这似乎是一项非常艰巨的任务。有任何想法吗?
sql-server data-warehouse azure-sqldw azure-sql-database azure-sql-data-warehouse
尝试使用 PowerShell 和 New-AzSqlDatabaseImport 命令将数据库部署到 Azure SQL 时,我收到以下错误:
New-AzSqlDatabaseImport : An unexpected error occured while processing the request. Tracking ID: 'mytrackingid'
At C:\mydir\mypowershell.ps1:363 char:18
+ ... rtRequest = New-AzSqlDatabaseImport -ResourceGroupName "myresource ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [New-AzSqlDatabaseImport], CloudException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Sql.ImportExport.Cmdlet.NewAzureSqlDatabaseImport
Get-AzSqlDatabaseImportExportStatus : Cannot bind argument to parameter 'OperationStatusLink' because it is null.
At C:\mydir\mypowershell.ps1:376 char:74
+ ... tExportStatus -OperationStatusLink $importRequest.OperationStatusLink
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Get-AzSqlDatabaseImportExportStatus], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.Azure.Commands.Sql.ImportExport.Cmdlet.GetAzureSqlDatabaseImportExportStatus
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我已经在其他虚拟机上运行了 100 …
sql-server ×3
azure ×2
azure-devops ×2
azure-sqldw ×1
c# ×1
databricks ×1
powershell ×1
pyspark ×1
pyspark-sql ×1
security ×1
sql ×1
sqlproj ×1
ssis ×1
t-sql ×1