Access keys are disabled in a storage account that a function app will read/write to.
It is important to make sure all the necessary files to test authentication locally are provisioned.
| -- REQUIRES: https://gist.github.com/JosiahSiegel/2195295eb20bd865f3b8543d098f0c4d | |
| -- Keep two tables synchronized based on the primary key | |
| -- and compares all columns for updates. | |
| -- Use if unable to identify a suitable update column | |
| ALTER PROCEDURE [sync].[sync_tables_all_columns_sp] | |
| @source_db SYSNAME, -- The name of the source database | |
| @source_schema SYSNAME, -- The name of the source schema | |
| @source_table SYSNAME, -- The name of the source table | |
| @target_db SYSNAME, -- The name of the target database | |
| @target_schema SYSNAME, -- The name of the target schema |
| -- Create a table variable to store the table names and synonyms | |
| DECLARE @TableSynonyms TABLE ( | |
| TableName NVARCHAR(128), | |
| TableSchema NVARCHAR(128), | |
| SynonymName NVARCHAR(128), | |
| SynonymSchema NVARCHAR(128) | |
| ); | |
| -- Insert the table names and synonyms into the table variable | |
| -- You can change the logic for generating the synonym names and schemas as per your requirement |
| -- Used by: https://gist.github.com/JosiahSiegel/ff740303e462da2c25e53cd97cc4d380 | |
| -- Keep two tables synchronized based on the primary key | |
| ALTER PROCEDURE [sync].[sync_tables_sp] | |
| @source_db SYSNAME, -- The name of the source database | |
| @source_schema SYSNAME, -- The name of the source schema | |
| @source_table SYSNAME, -- The name of the source table | |
| @target_db SYSNAME, -- The name of the target database | |
| @target_schema SYSNAME, -- The name of the target schema | |
| @target_table SYSNAME, -- The name of the target table | |
| @update_column SYSNAME = NULL, -- The name of the column that determines if the source row was updated |
| SELECT | |
| 'CREATE synonym [' + s.name + '].[' + t.name + '] for [' + DB_NAME() + '].[' + s.name + '].[' + t.name + ']' | |
| from sys.objects t | |
| inner join sys.schemas s | |
| ON t.schema_id = s.schema_id | |
| where t.type IN ('U', 'V', 'P') |
| -- https://www.sqlteam.com/forums/topic.asp?TOPIC_ID=61519 | |
| if exists (select * from dbo.sysobjects | |
| where id = object_id(N'[dbo].[F_TABLE_DATE]') | |
| and xtype in (N'FN', N'IF', N'TF')) | |
| drop function [dbo].[F_TABLE_DATE] | |
| GO | |
| SET QUOTED_IDENTIFIER OFF | |
| GO | |
| SET ANSI_NULLS OFF | |
| GO |
| USE [master] | |
| CREATE SERVER ROLE [rw_all] AUTHORIZATION [sa] | |
| ALTER SERVER ROLE [bulkadmin] ADD MEMBER [rw_all] | |
| GRANT ALTER ANY DATABASE TO [rw_all] | |
| GRANT CONNECT ANY DATABASE TO [rw_all] | |
| GRANT CONNECT SQL TO [rw_all] | |
| GRANT VIEW ANY DATABASE TO [rw_all] | |
| GRANT VIEW ANY DEFINITION TO [rw_all] | |
| GRANT VIEW SERVER STATE TO [rw_all] | |
| GRANT SELECT ALL USER SECURABLES to [rw_all]; |
| org="myorg" | |
| repo="myrepo" | |
| workflow_name="My Workflow" | |
| runs="repos/$org/$repo/actions/runs" | |
| query=".workflow_runs[] | select(.name == \"$workflow_name\") | (.id)" | |
| gh api --paginate $runs --jq "$query" \ | |
| | xargs -n1 -I % gh api $runs/% -X DELETE |
| #!/usr/bin/env bash | |
| # requirements: | |
| # openssl | |
| # az | |
| gateway_name=$1 | |
| resource_group=$2 | |
| cert_name=$3 | |
| cert_data=$4 |
| Key differences for Types of Shared Access Signatures | User Delegation SAS creation flow |
|---|---|
![]() |
![]() |
Source: medium.com