@@ -1215,6 +1215,207 @@ function Test-DataLakeAnalyticsCatalog
1215
1215
# verify that the second secret cannot be retrieved
1216
1216
Assert-Throws {Get-AdlCatalogItem - AccountName $accountName - ItemType Secret - Path " $databaseName .$secretName2 " }
1217
1217
1218
+ # prepare to grant/revoke ACLs
1219
+ $userPrincipalId = " 027c28d5-c91d-49f0-98c5-d10134b169b3"
1220
+ $groupPrincipalId = " 58d2027c-d19c-0f94-5c89-1b43101d3b96"
1221
+
1222
+ # get the initial number of ACL by db
1223
+ $aclByDbList = Get-AdlCatalogItemAclEntry - AccountName $accountName - ItemType Database - Path $databaseName
1224
+ $aclByDbInitialCount = $aclByDbList.count
1225
+
1226
+ # get the initial number of ACL by catalog
1227
+ $aclList = Get-AdlCatalogItemAclEntry - AccountName $accountName
1228
+ $aclInitialCount = $aclList.count
1229
+
1230
+ # grant ACL entry for user to the db
1231
+ $aclByDbList = Set-AdlCatalogItemAclEntry - AccountName $accountName - User - Id $userPrincipalId - ItemType Database - Path $databaseName - Permissions Read
1232
+
1233
+ Assert-AreEqual $ ($aclByDbInitialCount + 1 ) $aclByDbList.count
1234
+ $found = $false
1235
+ foreach ($acl in $aclByDbList )
1236
+ {
1237
+ if ($acl.Id -eq $userPrincipalId )
1238
+ {
1239
+ # confirm the ACE's information
1240
+ Assert-AreEqual User $acl.Type
1241
+ Assert-AreEqual $userPrincipalId $acl.Id
1242
+ Assert-AreEqual Read $acl.Permissions
1243
+ $found = $true
1244
+ break
1245
+ }
1246
+ }
1247
+
1248
+ Assert-True {$found } " Could not find the entry for $userPrincipalId in the ACL list of $databaseName "
1249
+
1250
+ # revoke ACE for user from the db
1251
+ Assert-True {Remove-AdlCatalogItemAclEntry - AccountName $accountName - User - Id $userPrincipalId - ItemType Database - Path $databaseName - PassThru} " Remove ACE failed."
1252
+
1253
+ $aclByDbList = Get-AdlCatalogItemAclEntry - AccountName $accountName - ItemType Database - Path $databaseName
1254
+ Assert-AreEqual $aclByDbInitialCount $aclByDbList.count
1255
+
1256
+ # grant ACL entry for group to the db
1257
+ $aclByDbList = Set-AdlCatalogItemAclEntry - AccountName $accountName - Group - Id $groupPrincipalId - ItemType Database - Path $databaseName - Permissions Read
1258
+
1259
+ Assert-AreEqual $ ($aclByDbInitialCount + 1 ) $aclByDbList.count
1260
+ $found = $false
1261
+ foreach ($acl in $aclByDbList )
1262
+ {
1263
+ if ($acl.Id -eq $groupPrincipalId )
1264
+ {
1265
+ # confirm the ACE's information
1266
+ Assert-AreEqual Group $acl.Type
1267
+ Assert-AreEqual $groupPrincipalId $acl.Id
1268
+ Assert-AreEqual Read $acl.Permissions
1269
+ $found = $true
1270
+ break
1271
+ }
1272
+ }
1273
+
1274
+ Assert-True {$found } " Could not find the entry for $groupPrincipalId in the ACL list of $databaseName "
1275
+
1276
+ # revoke ACE for group from the db
1277
+ Assert-True {Remove-AdlCatalogItemAclEntry - AccountName $accountName - Group - Id $groupPrincipalId - ItemType Database - Path $databaseName - PassThru} " Remove ACE failed."
1278
+
1279
+ $aclByDbList = Get-AdlCatalogItemAclEntry - AccountName $accountName - ItemType Database - Path $databaseName
1280
+ Assert-AreEqual $aclByDbInitialCount $aclByDbList.count
1281
+
1282
+ # set ACL entry for other
1283
+ $aclByDbList = Set-AdlCatalogItemAclEntry - AccountName $accountName - Other - ItemType Database - Path $databaseName - Permissions None
1284
+ Assert-AreEqual $aclByDbInitialCount $aclByDbList.count
1285
+ $found = $false
1286
+ foreach ($acl in $aclByDbList )
1287
+ {
1288
+ if ($acl.Type -eq " Other" )
1289
+ {
1290
+ # confirm the ACE's information
1291
+ Assert-AreEqual None $acl.Permissions
1292
+ $found = $true
1293
+ break
1294
+ }
1295
+ }
1296
+
1297
+ Assert-True {$found } " Could not find the entry for Other in the ACL list of $databaseName "
1298
+
1299
+ $aclByDbList = Set-AdlCatalogItemAclEntry - AccountName $accountName - Other - ItemType Database - Path $databaseName - Permissions Read
1300
+ Assert-AreEqual $aclByDbInitialCount $aclByDbList.count
1301
+ $found = $false
1302
+ foreach ($acl in $aclByDbList )
1303
+ {
1304
+ if ($acl.Type -eq " Other" )
1305
+ {
1306
+ # confirm the ACE's information
1307
+ Assert-AreEqual Read $acl.Permissions
1308
+ $found = $true
1309
+ break
1310
+ }
1311
+ }
1312
+
1313
+ Assert-True {$found } " Could not find the entry for Other in the ACL list of $databaseName "
1314
+
1315
+ # set owner permission to the db
1316
+ $prevDbOwnerAcl = Get-AdlCatalogItemAclEntry - AccountName $accountName - UserOwner - ItemType Database - Path $databaseName
1317
+ Assert-AreNotEqual None $prevDbOwnerAcl.Permissions
1318
+ $currentDbOwnerAcl = Set-AdlCatalogItemAclEntry - AccountName $accountName - UserOwner - ItemType Database - Path $databaseName - Permissions None
1319
+ Assert-AreEqual None $currentDbOwnerAcl.Permissions
1320
+ $prevDbGroupAcl = Get-AdlCatalogItemAclEntry - AccountName $accountName - GroupOwner - ItemType Database - Path $databaseName
1321
+ Assert-AreNotEqual None $prevDbGroupAcl.Permissions
1322
+ $currentDbGroupAcl = Set-AdlCatalogItemAclEntry - AccountName $accountName - GroupOwner - ItemType Database - Path $databaseName - Permissions None
1323
+ Assert-AreEqual None $currentDbGroupAcl.Permissions
1324
+
1325
+ # grant ACE for user to the catalog
1326
+ $aclList = Set-AdlCatalogItemAclEntry - AccountName $accountName - User - Id $userPrincipalId - Permissions Read
1327
+ Assert-AreEqual $ ($aclInitialCount + 1 ) $aclList.count
1328
+ $found = $false
1329
+ foreach ($acl in $aclList )
1330
+ {
1331
+ if ($acl.Id -eq $userPrincipalId )
1332
+ {
1333
+ # confirm the ACE's information
1334
+ Assert-AreEqual User $acl.Type
1335
+ Assert-AreEqual $userPrincipalId $acl.Id
1336
+ Assert-AreEqual Read $acl.Permissions
1337
+ $found = $true
1338
+ break
1339
+ }
1340
+ }
1341
+
1342
+ Assert-True {$found } " Could not find the entry for $userPrincipalId in the Catalog ACL list"
1343
+
1344
+ # revoke ACE for user from the catalog
1345
+ Assert-True {Remove-AdlCatalogItemAclEntry - AccountName $accountName - User - Id $userPrincipalId - PassThru} " Remove ACE failed."
1346
+
1347
+ $aclList = Get-AdlCatalogItemAclEntry - AccountName $accountName
1348
+ Assert-AreEqual $aclInitialCount $aclList.count
1349
+
1350
+ # grant ACL entry for group to the catalog
1351
+ $aclList = Set-AdlCatalogItemAclEntry - AccountName $accountName - Group - Id $groupPrincipalId - Permissions Read
1352
+
1353
+ Assert-AreEqual $ ($aclInitialCount + 1 ) $aclList.count
1354
+ $found = $false
1355
+ foreach ($acl in $aclList )
1356
+ {
1357
+ if ($acl.Id -eq $groupPrincipalId )
1358
+ {
1359
+ # confirm the ACE's information
1360
+ Assert-AreEqual Group $acl.Type
1361
+ Assert-AreEqual $groupPrincipalId $acl.Id
1362
+ Assert-AreEqual Read $acl.Permissions
1363
+ $found = $true
1364
+ break
1365
+ }
1366
+ }
1367
+
1368
+ Assert-True {$found } " Could not find the entry for $groupPrincipalId in the Catalog ACL list"
1369
+
1370
+ # revoke ACE for group from the catalog
1371
+ Assert-True {Remove-AdlCatalogItemAclEntry - AccountName $accountName - Group - Id $groupPrincipalId - PassThru} " Remove ACE failed."
1372
+
1373
+ $aclList = Get-AdlCatalogItemAclEntry - AccountName $accountName
1374
+ Assert-AreEqual $aclInitialCount $aclList.count
1375
+
1376
+ # set ACL entry for other
1377
+ $aclList = Set-AdlCatalogItemAclEntry - AccountName $accountName - Other - Permissions None
1378
+ Assert-AreEqual $aclInitialCount $aclList.count
1379
+ $found = $false
1380
+ foreach ($acl in $aclList )
1381
+ {
1382
+ if ($acl.Type -eq " Other" )
1383
+ {
1384
+ # confirm the ACE's information
1385
+ Assert-AreEqual None $acl.Permissions
1386
+ $found = $true
1387
+ break
1388
+ }
1389
+ }
1390
+
1391
+ Assert-True {$found } " Could not find the entry for Other in the Catalog ACL list"
1392
+
1393
+ $aclList = Set-AdlCatalogItemAclEntry - AccountName $accountName - Other - Permissions Read
1394
+ Assert-AreEqual $aclInitialCount $aclList.count
1395
+ $found = $false
1396
+ foreach ($acl in $aclList )
1397
+ {
1398
+ if ($acl.Type -eq " Other" )
1399
+ {
1400
+ # confirm the ACE's information
1401
+ Assert-AreEqual Read $acl.Permissions
1402
+ $found = $true
1403
+ break
1404
+ }
1405
+ }
1406
+
1407
+ Assert-True {$found } " Could not find the entry for Other in the Catalog ACL list"
1408
+
1409
+ # set owner permission to the catalog
1410
+ $prevCatalogOwnerAcl = Get-AdlCatalogItemAclEntry - AccountName $accountName - UserOwner
1411
+ Assert-AreNotEqual None $prevCatalogOwnerAcl.Permissions
1412
+ $currentCatalogOwnerAcl = Set-AdlCatalogItemAclEntry - AccountName $accountName - UserOwner - Permissions None
1413
+ Assert-AreEqual None $currentCatalogOwnerAcl.Permissions
1414
+ $prevCatalogGroupAcl = Get-AdlCatalogItemAclEntry - AccountName $accountName - GroupOwner
1415
+ Assert-AreNotEqual None $prevCatalogGroupAcl.Permissions
1416
+ $currentCatalogGroupAcl = Set-AdlCatalogItemAclEntry - AccountName $accountName - GroupOwner - Permissions None
1417
+ Assert-AreEqual None $currentCatalogGroupAcl.Permissions
1418
+
1218
1419
# Delete the DataLakeAnalytics account
1219
1420
Assert-True {Remove-AdlAnalyticsAccount - ResourceGroupName $resourceGroupName - Name $accountName - Force - PassThru} " Remove Account failed."
1220
1421
0 commit comments