azure - Remove-AzSqlDatabaseDataMaskingRule 忽略表和列名称
问题描述
PowerShell 方法Remove-AzSqlDatabaseDataMaskingRule
的行为就像它具有未定义的行为一样。
它似乎完全忽略了-TableName
and-ColumnName
参数,而是简单地删除了它找到的第一个屏蔽规则。
请参阅以下命令:
Remove-AzSqlDatabaseDataMaskingRule -SchemaName "dbo" -TableName "anything" -ColumnName "anything" -ServerName "our-server-name" -DatabaseName "our-database-name" -ResourceGroupName "our-rg"
打电话
Get-AzSqlDatabaseDataMaskingRule -ServerName "our-server-name" -DatabaseName "our-database-name" -ResourceGroupName "our-rg"
在 remove 命令之前返回所有规则,在 remove 命令之后返回一个。所以它删除了一些东西,只是我们要求它的特定规则。
任何熟悉这种行为的人?
解决方案
好吧,我也可以在我这边重现您的问题,即使使用最新的Az.Sql
模块,它也应该是一个错误。
在这种情况下,我的解决方法是直接Invoke-AzRestMethod
调用 REST API Data Masking Rules - Create Or Update
。确保您的Az
模块不是太旧,否则没有Invoke-AzRestMethod
命令,Update-Module -Name Az
如果需要,您可以使用更新模块。
在我的示例中,tab1
是TableName,col2
是ColumnName,dbo
是SchemaName,也将它们替换为您的值,"ruleState": "Disabled"
用于删除规则。有关 中值的详细信息Payload
,您可以使用Get-AzSqlDatabaseDataMaskingRule
查看特定值。
$id = (Get-AzSqlDatabase -ServerName "joysqldb" -DatabaseName "joydb1" -ResourceGroupName "xxxx").ResourceId
Invoke-AzRestMethod -Path "$id/dataMaskingPolicies/Default/rules/dbo_tab1_col2?api-version=2014-04-01" -Method "PUT" -Payload '{
"properties": {
"id": "dbo_tab1_col2",
"ruleState": "Disabled",
"schemaName": "dbo",
"tableName": "tab1",
"columnName": "col2",
"maskingFunction": "Default"
}
}'
推荐阅读
- html - WCAG 2.0 H44 - 当文本框使用占位符文本时如何添加标签
- python - 在 TensorFlow 或 PyTorch 中仅创建和训练指定的权重
- reactjs - Jest React Redux 测试
- javascript - 在 jquery 中使用 hasClass 未检测到内部类名
- oracle - Oracle SQL ORA-24344 使用触发器时编译错误成功
- javascript - 获得链接的价值?
- python - Pandas 改变数值数据:迭代行以对每一行中的数据进行分组,打包成一个列表,将列表转换为系列,然后作为列插入数据框
- node.js - 我想通过 npm 安装一些东西,但它说'错误'和'checkPermissions Missing'
- apache - 无法使用 vagrant 从主机解析 IP
- amazon-web-services - AWS RDS 无法设置启用删除保护的备份保留期