Category: Microsoft
Category Archives: Microsoft
Project online error 10102 cannot checkout
Does anyone knows how to fix the error 10102? there is a lot of record of this issue on the web but no solution.
Its the one when you try to open a project with the desktop client, pressing the checkout button doesn’t do anything and when trying to publish through the info->menu, the following message appears:
“this project is no longer checked out to you on the project web app, to save as different project…” blablabla.
I deleted the cash, but it didn’t help.
The problem suddenly appeared a couple months ago, and is getting worse by the weeks, and Me and my colleagues are affected which makes me think it’s not a local issue on my PC.
I am the admin of this PWA instance so I have all the rights.
<detail><ServerExecutionFault xmlns=”http://Microsoft.Office.Project.Interfaces/” xmlns:i=”http://www.w3.org/2001/XMLSchema-instance“><Actor i:nil=”true”/><LastError>10102</LastError><Message></Message><Source></Source><StackTrace></StackTrace><TargetSite i:nil=”true”/><ExceptionDetails><errinfo xmlns=””><general><class name=”CICONotCheckedOut”><error id=”10102″ name=”CICONotCheckedOut” uid=”89ec1f75-7521-ef11-8ae4-00155da89d0c”/></class></general></errinfo></ExceptionDetails></ServerExecutionFault></detail>
Does anyone knows how to fix the error 10102? there is a lot of record of this issue on the web but no solution.Its the one when you try to open a project with the desktop client, pressing the checkout button doesn’t do anything and when trying to publish through the info->menu, the following message appears:”this project is no longer checked out to you on the project web app, to save as different project…” blablabla.I deleted the cash, but it didn’t help.The problem suddenly appeared a couple months ago, and is getting worse by the weeks, and Me and my colleagues are affected which makes me think it’s not a local issue on my PC.I am the admin of this PWA instance so I have all the rights. <detail><ServerExecutionFault xmlns=”http://Microsoft.Office.Project.Interfaces/” xmlns:i=”http://www.w3.org/2001/XMLSchema-instance”><Actor i:nil=”true”/><LastError>10102</LastError><Message></Message><Source></Source><StackTrace></StackTrace><TargetSite i:nil=”true”/><ExceptionDetails><errinfo xmlns=””><general><class name=”CICONotCheckedOut”><error id=”10102″ name=”CICONotCheckedOut” uid=”89ec1f75-7521-ef11-8ae4-00155da89d0c”/></class></general></errinfo></ExceptionDetails></ServerExecutionFault></detail> Read More
Highlights from Build and what’s new with .NET
Last month’s Microsoft Build event featured exciting announcements and in-depth sessions on the latest developer tools and technologies. Throughout June, we’re looking at highlights from Microsoft Build. Explore news, challenges, training, and announcements. Get started with Dev Box, find out how to build cloud-native apps with the new .NET Aspire, build a custom copilot, and join a challenge to keep building new skills.
Microsoft Learn Challenge: Build Edition
Are you ready for the Microsoft Learn Challenge: Build Edition? Immerse yourself in Azure AI, Copilot, GitHub, and Microsoft Fabric to elevate and learn new skills. Challenge runs through June 21. Start today.
Announcing: .NET Aspire is now available
Easily build cloud-native apps with intuitive orchestration tools, comprehensive observability, and versatile deployment. Learn more.
Build apps from the cloud with Microsoft Dev Box, Visual Studio, and more
Microsoft Dev Box is evolving to meet the needs of teams, developers, and administrators. Learn about the latest features and integrations coming to Dev Box that optimize the developer experience from onboarding to deployment.
Season of AI Community Events
Microsoft AI is coming to a community event near you. Get started with generative AI, do more with Copilot, explore Azure AI Studio, and more. Find a local event and sign up to learn new skills from experts.
Let’s Learn .NET Aspire
Check out this beginner video series to learn the fundamentals of using C# and .NET to build real-world apps. On June 27, the Let’s Learn series will delve into building cloud-native apps with .NET Aspire. Streaming live and then available on demand.
Announcing the AI Toolkit for Visual Studio Code
The new AI Toolkit for Visual Studio Code is a powerful VS Code extension that lets developers easily explore, test, and integrate models from Azure AI Studio and HuggingFace into their applications.
AI Apps: Driving innovation from development to production
AI is redefining applications, driving new possibilities, and changing how apps are developed. Check out this blog post to explore AI, the latest tools, and the impact recent advancements are having on modern apps and development.
Accelerate business growth with AI
Discover how Microsoft Copilot can help transform your business. Build your own copilot or enhance workflows with Copilot extensions. The opportunities for innovation are endless.
AI in action: Powering up with Power Automate
Check out this series of videos to explore different ways to use AI with Power Automate. Create custom AI prompts, extend Microsoft 365 Copilot, add generative AI to your cloud flows, and more.
.NET AI Community Standup: What’s new in AI Samples?
Watch this .NET AI Community Standup to discover the latest updates to the AI-SAMPLES GitHub repository—including new support for open-source LLMs (like Phi-3 and Llama 3). This is a great session for developers wanting to incorporate AI into their .NET applications.
Develop .NET applications with AI features
Explore ways to use AI with .NET. Browse sample code, tutorials, quickstarts, and conceptual articles in the .NET for Azure developers documentation.
Get started with .NET 8 and AI using new quickstart tutorials
Want to add AI to your .NET apps? These quickstart tutorials provide step-by-step guidance to help you get started with .NET 8 and AI.
.NET announcements and updates from Microsoft Build 2024
Microsoft Build 2024 presented new features and tools designed to make .NET development faster and easier. Here’s a roundup of .NET updates and announcements.
Azure Cosmos DB AI developer guides
Elevate your Azure Cosmos DB skills with the Microsoft Azure Enablement Show. This episode explores two new Azure Cosmos DB developer guides—one for Node.js and one for Python— and a new learning path for building a chat bot using Azure OpenAI.
Build intelligent apps with Python
Build intelligent apps with Python. This episode of the Microsoft Azure Enablement Show looks at how you can use Python to build intelligent, modern apps. Then discover resources and tools that Microsoft offers for your Python skilling.
Accelerate developer productivity with GitHub and Azure for developers
Start building the skills you need to code in the cloud with GitHub Copilot. This skilling plan on Microsoft Learn will get you started. Let GitHub help you write code, understand code from other developers, create documentation, and solve issues in your code.
Enhancing Microsoft Teams to support developer productivity and collaboration
Learn about new capabilities coming to Microsoft Teams that will help developers to be more productive and improve collaboration.
Curating a collection of free Microsoft Copilot prompts
Announcing a new collection of prompts to help you use Microsoft Copilot more effectively across Microsoft 365. Read the blog for an overview and check out the collection repo on GitHub.
Dev Proxy v0.17 includes integration with Azure API Center
Do more with APIs. Discover how the new Dev Proxy v0.17, which includes integration with Azure API Center, will help you build robust apps connected to APIs. Read details and find out how to get started with Dev Proxy.
Intro to RAG: Empowering your custom copilot with your data using Azure AI Search and Teams Toolkit
Watch an intro to retrieval-augmented generation (RAG) using Python and Teams Toolkit. Learn how to integrate your data with Azure AI Search to power a custom Copilot, giving AI responses access to external data sources.
Where is the Microsoft 365 API?
Where is the Microsoft 365 API? Microsoft Graph is the main API for Microsoft 365. But Microsoft 365 has many more APIs and libraries. Watch this video for a complete overview.
Official Collection: Microsoft Dev Box
Increase productivity and developer satisfaction with Microsoft Dev Box—cloud-based workstations optimized for developers. Get started with this collection of resources from Microsoft Learn. Watch an overview, read a quickstart guide, find out how to manage secure access to your dev boxes, and more.
Build a copilot with Azure AI Studio
Don’t miss this episode of the Microsoft Azure Enablement Show if you’re looking to advance your expertise in AI technologies. Watch now to learn how to use Azure AI Studio to build your own copilot.
Official Collection: Build your own copilot with Microsoft Copilot Studio
Build and deploy your own copilot using the latest features and updates from Copilot Studio. This collection of learning resources covers everything you need to know.
Boost dev team agility with customized, project-specific templates in Azure Deployment Environments
Azure Deployment Environments makes it easier to perform deployments with Pulumi and further streamline app infrastructure provisioning. Learn how new features in Azure Deployment Environments can increase dev team agility.
Microsoft Tech Community – Latest Blogs –Read More
Local Development using Azure Cosmos DB Emulator at no Cost
In our previous blogs we introduced you to what is Azure Cosmos DB and Azure Cosmos DB APIs like Azure Cosmos DB for PostgreSQL, Azure Cosmos DB for Apache Gremlin, Azure Cosmos DB for MongoDB. In this blog we are going to introduce you Azure Cosmos DB Emulator which will help to run Azure Cosmos DB offline and do local development with ease.
Benefits of Azure Cosmos DB Emulator
Local Development Environment: The emulator provides a local environment that closely emulates the Azure Cosmos DB service. You can use it to develop and test your applications without needing an active Azure subscription or incurring any service costs.
Cost-Free Testing: By using the emulator, you can write and test code that interacts with Azure Cosmos DB APIs even when you have no network connection. This allows you to avoid any costs associated with using the actual cloud service
Automation Workflow Support: Incorporating the emulator into your automation workflows enables consistent testing across local development machines and remote continuous integration jobs.
Prerequisites
.NET 6 or later, Node.js LTS, or Python 3.7 or later
Ensure that all required executables are available in your PATH.
Windows emulator
64-bit Windows Server 2016, 2019, Windows 10, or Windows 11.
Minimum hardware requirements:
2-GB RAM
10-GB available hard disk space
What will be covered
Installation process of Azure Cosmos DB Emulator
Using Explorer in Azure Cosmos DB Emulator
Connecting Azure Cosmos DB Emulator with Azure Data Studio
Consuming Azure Cosmos DB using Azure Cosmos DB client library for JavaScript/TypeScript
Installation process of Azure Cosmos DB Emulator
Visit this page
Under choose an API, select your preferred API, I will go with NoSQL.
You can run the emulator in docker(both linux & windows) or windows via local installation which we are going to do.
Download the Azure Cosmos DB emulator.
Run the installer on your local machine with administrative privileges.
The emulator automatically installs the appropriate developer certificates and configures firewall rules on your local machine.
Start the emulator
Start the emulator by selecting the application in the Windows Start menu.
Alternatively, you can start the emulator’s executable (Microsoft.Azure.Cosmos.Emulator.exe) at the %ProgramFiles%Azure Cosmos DB Emulator path.
Also, you can start the emulator from the command-line. Use these parameters to configure the emulator ie you can specify the port to use for the API for NoSQL endpoint. More about emulator cli commands
Microsoft.Azure.Cosmos.Emulator.exe /Port=65000
The emulator automatically opens the data explorer using the URL https://localhost:8081/_explorer/index.html
If you’re using docker you must configure emulator’s TLS/SSL certificate but Windows local installation of the emulator automatically imports the TLS/SSL certificates. No further action is necessary.
You should be welcomed by this familiar screen.
Using Explorer in Azure Cosmos DB Emulator
Create a database, container, select database throughput, database max RU/s and partition key. Then press okey
You can confirm that you have created the database and container by
Let’s create an item in our container. Click on items then new item and paste below json object and save.
{
“eventId”: “unique_event_id”,
“eventName”: “Marathon”,
“eventDate”: “2024-05-20”,
“participants”: [
{
“participantId”: “participant1”,
“name”: “Alice”,
“score”: 1200
},
{
“participantId”: “participant2”,
“name”: “Bob”,
“score”: 1100
}
]
}
Run query to select all items in our container. Click on run query, write your query and execute the query.
You can access the Query Stats like RUs usage. You can also export the stats.
Connecting Azure Cosmos DB Emulator with Azure Data Studio
Download Azure data studio here and install it in your machine.
Go to Azure Cosmos DB Emulator quickstart page and copy the Primary Connection String
Open Azure data studio. Under extensions search Azure Cosmos DB and install the extension.
Click on connections, create new connection, then select Azure Cosmos DB for NoSQL, select connection string, the paste the Primary Connection String we copied in the emulator. Press connect.
The connection is successful, and you can easily use Azure Data Studio if its your preferred tool and create databases, containers make queries etc.
U can take advantage of the import sample data button to get sample data to get started. A new container will be created with data.
Consuming Azure Cosmos DB using Azure Cosmos DB client library for JavaScript/TypeScript
We are going to use Azure Cosmos DB client library for JavaScript/TypeScript which is an SDK intended for JavaScript/TypeScript applications to interact with Azure Cosmos DB APIs. With it we can
Create Cosmos DB databases and modify their settings.
Create and modify containers to store collections of JSON documents.
Create, read, update, and delete the items (JSON documents) in your containers.
Query the documents in your database using SQL-like syntax
You can read more about this SDK here.
I have prepared a small workshop here, to help you interact with Azure Cosmos DB Emulator with a simple API starter code which you can hook up with hono or express or your favorite JavaScript / Typescript backend.
In client.config.ts, we have just initialized our cosmosClient and passed in endpoint and key stored in .env file. NB: I have added agent property to allow us to use the “https:” from our emulator smoothly in our local development.
I have imported client.config.ts into db.config.ts to help us create our database and container programtically. Lastly I’m using data.ts to store sample objects we can use to save in our container.
In my index.ts, I have included several functions to help interact with our emulator. If you run pnpm run dev
or npm run dev you will get [ ] meaning our container is empty but it have been created together with the database.
If you uncomment createFamilyMember(familyMember) and alsorun you code. You should get one family member create
You can confirm this on the Emulators explorer.
Read more
Optimize development and testing cost in Azure Cosmos DB
Understand your Azure Cosmos DB bill
Optimize request cost in Azure Cosmos DB
Estimate RU/s using the Azure Cosmos DB capacity planner – Azure Cosmos DB for NoSQL
Microsoft Tech Community – Latest Blogs –Read More
safety course in chennai
What is the NEBOSH Course and its benefits?
The NEBOSH (National Examination Board in Occupational Safety and Health) course is a globally recognized qualification that provides comprehensive training in health, safety, and environmental management. NEBOSH courses are designed to equip individuals with the knowledge and skills to manage workplace risks effectively and ensure compliance with health and safety regulations.
Types of NEBOSH Courses
NEBOSH International General Certificate (IGC) in Occupational Health and Safety:
Aimed at individuals seeking a broad understanding of health and safety principles and practices.Covers topics such as risk assessment, hazard control, health and safety management systems, and workplace hazards.
NEBOSH National General Certificate in Occupational Health and Safety:
Similar to the IGC but tailored to UK-specific legislation and practices.
Suitable for those working in the UK or dealing with UK regulations.
NEBOSH International Diploma in Occupational Health and Safety:
An advanced qualification for professionals seeking to deepen their knowledge and expertise.Covers complex health and safety issues, risk management, and the development of safety policies and strategies.
NEBOSH Certificate in Fire Safety and Risk Management:
Focuses on fire safety management and fire risk assessment.Ideal for individuals responsible for fire safety in their organizations.
NEBOSH Environmental Management Certificate:
Provides knowledge on environmental management and sustainability practices.Suitable for those looking to integrate environmental management into their roles.
https://safetyengineeringcourseinchennai.in/fire-and-safety-courses/
What is the NEBOSH Course and its benefits?The NEBOSH (National Examination Board in Occupational Safety and Health) course is a globally recognized qualification that provides comprehensive training in health, safety, and environmental management. NEBOSH courses are designed to equip individuals with the knowledge and skills to manage workplace risks effectively and ensure compliance with health and safety regulations.Types of NEBOSH CoursesNEBOSH International General Certificate (IGC) in Occupational Health and Safety:Aimed at individuals seeking a broad understanding of health and safety principles and practices.Covers topics such as risk assessment, hazard control, health and safety management systems, and workplace hazards. NEBOSH National General Certificate in Occupational Health and Safety:Similar to the IGC but tailored to UK-specific legislation and practices.Suitable for those working in the UK or dealing with UK regulations. NEBOSH International Diploma in Occupational Health and Safety:An advanced qualification for professionals seeking to deepen their knowledge and expertise.Covers complex health and safety issues, risk management, and the development of safety policies and strategies. NEBOSH Certificate in Fire Safety and Risk Management:Focuses on fire safety management and fire risk assessment.Ideal for individuals responsible for fire safety in their organizations. NEBOSH Environmental Management Certificate:Provides knowledge on environmental management and sustainability practices.Suitable for those looking to integrate environmental management into their roles.https://safetyengineeringcourseinchennai.in/fire-and-safety-courses/ Read More
Extracting table values if values in two columns have identical values in other rows
Hi guys,
Can someone please help me with a formula for the following task?
I have over 40,000 rows of data in ‘Table 1′, I’ve extracted a sample.
I need to analyse only cells which contain identical values in both ‘Product‘ and ‘Decrement‘ in ‘Table 1’. I have manually created a dataset in ‘Table 2′ which highlits the output I need.
Thanks in advance!!
Hi guys, Can someone please help me with a formula for the following task? I have over 40,000 rows of data in ‘Table 1’, I’ve extracted a sample. I need to analyse only cells which contain identical values in both ‘Product’ and ‘Decrement’ in ‘Table 1’. I have manually created a dataset in ‘Table 2’ which highlits the output I need. Thanks in advance!! Read More
problem with getting emails from outside
Hello,
Can someone help me to check our organization emails. Some of our organization emails not getting emails from outside. i am not sure what is the problem
Thanks
Hello, Can someone help me to check our organization emails. Some of our organization emails not getting emails from outside. i am not sure what is the problem Thanks Read More
Automate prompt analysis update through VBA
I am trying to update the prompts in Analysis – which I do currently manually every month – for Excel; however, despite I am getting the value from technical name (which I guess is correct though), I can’t change it with the code bellow:
Public currentDateRange As String
Public expectedDateRange As String
Sub GetInfoFROMVariables()
Dim msg As String
currentDateRange = Application.Run(“SAPGetVariable”, “DS_1”, “ZCALMDEF”)
‘****Here the MsgBox currentDateRange retrieves the current value for ZCALMDEF, which is “2024/06 – 2024/11”.
MsgBox currentDateRange
expectedDateRange = GetNextMonthYear() & ” – ” & GetFutureMonthYear(6)
MsgBox expectedDateRange
End Sub
Function GetNextMonthYear() As String
Dim startMonth As Date
startMonth = DateAdd(“m”, 1, Date)
GetNextMonthYear = Format(startMonth, “yyyy/mm”)
End Function
Function GetFutureMonthYear(monthsAhead As Integer) As String
Dim futureDate As Date
futureDate = DateAdd(“m”, monthsAhead, Date)
GetFutureMonthYear = Format(futureDate, “yyyy/mm”)
End Function
Sub AtualizarPROMPTAnalysis()
Call GetInfoFROMVariables
If currentDateRange <> expectedDateRange Then
Application.ScreenUpdating = False
‘*****Here it does not work, neither the ARRAY or the expectedDateRange commands.
‘Application.Run “SAPSetVariable”, “DS_1”, “ZCALMDEF”, Array(GetNextMonthYear(), GetFutureMonthYear(7))
Application.Run “SAPSetVariable”, “DS_1”, “ZCALMDEF”, expectedDateRange
Application.ScreenUpdating = False
RefreshAll = Application.Run(“SAPExecuteCommand”, “Refresh”)
Application.ScreenUpdating = True
‘Here it shows normally what is expected “2024/07 – 2024/12”
MsgBox expectedDateRange
End If
‘
End Sub
Technical name is checked, also I know it is ok because I retrieved this value with MsgBox currentDateValue normally.
Thank you very much for your kindly attention and sharing your knowledge.
I am trying to update the prompts in Analysis – which I do currently manually every month – for Excel; however, despite I am getting the value from technical name (which I guess is correct though), I can’t change it with the code bellow: Public currentDateRange As String
Public expectedDateRange As String
Sub GetInfoFROMVariables()
Dim msg As String
currentDateRange = Application.Run(“SAPGetVariable”, “DS_1”, “ZCALMDEF”)
‘****Here the MsgBox currentDateRange retrieves the current value for ZCALMDEF, which is “2024/06 – 2024/11”.
MsgBox currentDateRange
expectedDateRange = GetNextMonthYear() & ” – ” & GetFutureMonthYear(6)
MsgBox expectedDateRange
End Sub
Function GetNextMonthYear() As String
Dim startMonth As Date
startMonth = DateAdd(“m”, 1, Date)
GetNextMonthYear = Format(startMonth, “yyyy/mm”)
End Function
Function GetFutureMonthYear(monthsAhead As Integer) As String
Dim futureDate As Date
futureDate = DateAdd(“m”, monthsAhead, Date)
GetFutureMonthYear = Format(futureDate, “yyyy/mm”)
End Function
Sub AtualizarPROMPTAnalysis()
Call GetInfoFROMVariables
If currentDateRange <> expectedDateRange Then
Application.ScreenUpdating = False
‘*****Here it does not work, neither the ARRAY or the expectedDateRange commands.
‘Application.Run “SAPSetVariable”, “DS_1”, “ZCALMDEF”, Array(GetNextMonthYear(), GetFutureMonthYear(7))
Application.Run “SAPSetVariable”, “DS_1”, “ZCALMDEF”, expectedDateRange
Application.ScreenUpdating = False
RefreshAll = Application.Run(“SAPExecuteCommand”, “Refresh”)
Application.ScreenUpdating = True
‘Here it shows normally what is expected “2024/07 – 2024/12”
MsgBox expectedDateRange
End If
‘
End Sub Technical name is checked, also I know it is ok because I retrieved this value with MsgBox currentDateValue normally.Thank you very much for your kindly attention and sharing your knowledge. Read More
ostをpstに変換する方法?
Advik OST PST 変換をダウンロードしてインストールします。このソフトウェアは、同じフォルダー構造でostをpst形式に変換するのに役立ちます。このソフトウェアは、すべての電子メール、連絡先、カレンダー、メモ、タスク、ost から pst までのすべてをエクスポートします。
ost pst変換の手順
advik ost pst 変換を実行します。「ファイルを追加」をクリックし、ostファイルを追加します。メールボックスフォルダーを選択します。保存オプションとして pst を選択します。変換ボタンをクリックします。
ソフトウェアは、Outlook 2016、2019、2021 用に ost を pst に変換し始めます。
Advik OST PST 変換をダウンロードしてインストールします。このソフトウェアは、同じフォルダー構造でostをpst形式に変換するのに役立ちます。このソフトウェアは、すべての電子メール、連絡先、カレンダー、メモ、タスク、ost から pst までのすべてをエクスポートします。ost pst変換の手順advik ost pst 変換を実行します。「ファイルを追加」をクリックし、ostファイルを追加します。メールボックスフォルダーを選択します。保存オプションとして pst を選択します。変換ボタンをクリックします。ソフトウェアは、Outlook 2016、2019、2021 用に ost を pst に変換し始めます。 Read More
7 Best OST to PST Converter Software for Outlook
Check out the list of best OST to PST Converter utilities in 2024. The below applications are ranked according to the perfection, accuracy and reliability. Take the help from below solutions for converting OST to PST format.
7 Best OST to PST Converter Software in 2024
Advik OST to PST ConverterXtraxtorYota OST File ConverterSystools OST to PST ConvertRecoverytools OST 2 PST WizardBitrecover OST to PST SoftwarePCVita Outlook OST Converter
Check out the list of best OST to PST Converter utilities in 2024. The below applications are ranked according to the perfection, accuracy and reliability. Take the help from below solutions for converting OST to PST format. 7 Best OST to PST Converter Software in 2024Advik OST to PST ConverterXtraxtorYota OST File ConverterSystools OST to PST ConvertRecoverytools OST 2 PST WizardBitrecover OST to PST SoftwarePCVita Outlook OST Converter Read More
List of 7 Best MBOX to PST Converter for Outlook
Looking for the best MBOX to PST Converter? Take the help from this post and find out the best one for convert mbox to pst format. After testing more than 20+ applications we found only 7 genuine tools for converting MBOX to PST. Check out the list below.
Top 7 Best MBOX to PST Converter Software
Advik MBOX to PST ConverterYota MBOX to Outlook ConverterXtraxtorSystools MBOX to PST ToolBitrecover MBOX to PST ConversionSoftaken MBOX File ConverterCorbett MBOX to PST Tool
Looking for the best MBOX to PST Converter? Take the help from this post and find out the best one for convert mbox to pst format. After testing more than 20+ applications we found only 7 genuine tools for converting MBOX to PST. Check out the list below. Top 7 Best MBOX to PST Converter SoftwareAdvik MBOX to PST ConverterYota MBOX to Outlook ConverterXtraxtorSystools MBOX to PST ToolBitrecover MBOX to PST ConversionSoftaken MBOX File ConverterCorbett MBOX to PST Tool Read More
Use Microsoft Entra to connect Azure Database for MySQL via Function App
TOC
Why we use it
Architecture
How to use it
References
Why we use it
An increasing number of security vulnerabilities are caused by sensitive information in the source code being leaked or accidentally uploaded to open repositories GitHub, leading to the exposure of a large amount of user privacy. This information includes, but is not limited to, database credentials, app keys, etc. Traditional MySQL databases use usernames and passwords for login operations, naturally leading to the inclusion of these credentials in project configuration files. Even with proper safeguards, there remain unpredictable risks, such as hacking.
This tutorial will introduce how to integrate Microsoft Entra with Azure Database for MySQL to avoid using fixed usernames and passwords. By utilizing system-assigned managed identities and user-assigned managed identities as a programmatic bridge, it becomes easier for Azure-related PaaS services (such as Function App or App Services) to communicate with the database without storing connection information in plain text.
Architecture
I will introduce each service or component and their configurations in subsequent chapters according to the order of A-E:
A: The company’s account administrator needs to create or designate a user as the database administrator. This role can only be assigned to one person within the database and is responsible for basic configuration and the creation and maintenance of other database users. It is not intended for development or actual system operations.
B: The company’s development department needs to create a Function App (or other service) as the basic unit of the business system. Programmers within this unit will write business logic (e.g., accessing the database) and deploy it here.
C: The company’s development department needs to create and manage a system-assigned managed identity for the Function App. In the future, the Function App will issue access requests to the database under its own identity.
D: The company’s security department needs to create one or more user-assigned managed identities. In the future, the Function App will issue access requests to the database under different user identities.
E: The company’s data department needs to create or maintain a database and designate Microsoft Entra as the only login method, eliminating other fixed username/password combinations.
For steps C and D, you can choose to implement one method or both, depending on your business scenarios.
How to use it
A: As this article does not dive into the detailed configuration of Microsoft Entra, it will only outline the process. The company’s account administrator needs to create or designate a user as the database administrator. In this example, we will call this user “cch,” and the account, “cch@thexxxxxxxxxxxx” will be used in subsequent steps.
B-1: In this example, we can create a Function App with any SKU/region. For the development language (stack), we choose Python as a demonstration, though other languages also support the same functionality. Since this article does not cover the detailed network configuration or other specifics of the Function App, we will use the default values for other settings. Simply click on “Review + Create,” and then click on “Create” to complete the process.
C-1: Meanwhile, in the Function App, navigate to the “Identity” option. We need to enable its system-assigned managed identity and make a note of its Object ID for use in next steps.
C-2: To get the detailed information of this system-assigned managed identity, please navigate to Microsoft Entra. Click on “Enterprise Applications,” then search for the name of your Function App in the search bar, and make sure to disable the application type filter.
After selecting this application, you will be able to obtain the application ID of the system-assigned managed identity from its page. Please make a note of this ID, as it will be used in subsequent steps.
D-1: Please open Azure Cloud Shell in the PowerShell mode and enter a command similar to the one below to create a user-assigned managed identity. You will need to change the <text> to follow your company’s naming conventions. Once the creation is successful, please note the returned values for “clientid” and “id” as these will be used in subsequent steps.
az identity create –resource-group <YOUR_RG_NAME> –name <YOUR_IDENTITY_NAME>
D-2: Staying in PowerShell mode, you will then need to use the “id” obtained in step D-1 to construct a command that will bind this user-assigned managed identity to the Function App.
az functionapp identity assign –resource-group <YOUR_RG_NAME> –name <YOUR_FUNCTION_APP_NAME> –identities <ID_IN_STEP_D1>
E-1: Create a database. During this process, you need to specify the user created in Step A as the database administrator and specify the user-assigned managed identity created in Step D as the entity that will actually operate the database. Please note that the MySQL version needs to be at least 5.7 or higher, and for the authentication method, select “Microsoft Entra authentication only.” In this mode, the username/password will no longer be used. Then, click on “Next: Networking.”
Since this article does not cover the detailed network configuration of the database, temporarily allow public access during the tutorial. Use the default values for other settings, click on “Review + Create,” and then click “Create” to finish the setup.
E-2: After the database is created, you can log in using the identity “cch@thexxxxxxxxxxxx” you’ve get from Step A which is the database administrator. Log in to the Azure portal using the “cch” account, open an Azure Cloud Shell, and switch to Bash mode. Then, enter the following command to log in to MySQL. You will need to change the <text> to follow your company’s naming conventions.
mysql -h <YOUR_DB_NAME>.mysql.database.azure.com –user <YOUR_FULL_USER_EMAIL> –enable-cleartext-plugin –password=`az account get-access-token –resource-type oss-rdbms –output tsv –query accessToken`
Here, we additionally introduce the method for logging in using a GUI-related MySQL client. In the previous command, you may notice a nested command enclosed within backticks “. This is used to get an access token for database access as the “cch” user. This token can be used as the password when logging into MySQL clients (e.g., DataGrip, HeidiSQL).
az account get-access-token –resource-type oss-rdbms –output tsv –query accessToken
Returning to the MySQL console, we will now create user accounts in MySQL for the managed identities setup from Step C and Step D. First, we will introduce the method for the user-assigned managed identity. Please enter the following command.
SET aad_auth_validate_oids_in_tenant = OFF;
CREATE AADUSER ‘<SPECIFY_A_PROPER_NAME>’ IDENTIFIED BY ‘<YOUR_CLIENT_ID_FROM_D1>’;
The purpose of these two commands is to create a MySQL user account specifically for the managed identity. You can freely name the account; in this example, I have named it “miuser”.
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON *.* TO ‘<SPECIFY_A_PROPER_NAME>’@’%’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
The purpose of the next two commands is to grant database-related operational permissions to the newly created user. This is just an example. In actual scenarios, you should follow your company’s security policies and make the necessary adjustments accordingly.
Once you are familiar with the method, you can proceed to perform the same operations for the system-assigned managed identity.
SET aad_auth_validate_oids_in_tenant = OFF;
CREATE AADUSER ‘<SPECIFY_A_PROPER_NAME>’ IDENTIFIED BY ‘<YOUR_APP_ID_FROM_C2>’;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON *.* TO ‘<SPECIFY_A_PROPER_NAME>’@’%’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
For testing purposes in later steps, we will create a test database, a test table, and insert some data. Please put this data schema in the mysql console.
CREATE DATABASE test;
USE test;
CREATE TABLE test.welcome_test(
id int AUTO_INCREMENT PRIMARY KEY,
test VARCHAR(4) NOT NULL
) ENGINE=InnoDB;
INSERT INTO test.welcome_test(test) VALUES (‘asdf’);
B-2: Programmer can now deploy the code to the Function App. In this tutorial, we use Python to complete the example and utilize “Programming Model v2”. Other languages also have their respective MySQL connectors and follow the same principles.
In requirements.txt, in addition to the existing azure-functions, please add the following two packages: azure-identity and mysql-connector-python.
azure-functions
azure-identity
mysql-connector-python
In function_app.py, include the following example content:
import azure.functions as func
import logging
import mysql.connector
from mysql.connector import errorcode
import azure.identity
from azure.identity import DefaultAzureCredential
from azure.identity import ManagedIdentityCredential
app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)
@app.route(route=”mysqltest”)
def mysqltest(req: func.HttpRequest) -> func.HttpResponse:
ret = “”
# —————————-
logging.info(‘Get token from system assigned identity’)
smi = DefaultAzureCredential()
stoken = smi.get_token(“https://ossrdbms-aad.database.windows.net”).token
stoken = str(stoken).strip()
sconn = mysql.connector.connect(**{
‘host’:’mimysql-db.mysql.database.azure.com’, # change to your server
‘user’:’smiuser’, # change to your username
‘password’:stoken,
‘auth_plugin’:’mysql_clear_password’,
‘client_flags’: [mysql.connector.ClientFlag.SSL],
‘database’:’test’ # change to your database
})
scursor = sconn.cursor()
scursor.execute(“SELECT * FROM welcome_test;”) # change to your table
srows = scursor.fetchall()
sret = “”
for srow in srows:
sret += str(srow[1])
sconn.commit()
scursor.close()
sconn.close()
# —————————-
logging.info(‘Get token from user assigned identity’)
umi = ManagedIdentityCredential(client_id=”1ddc2a7e-xxxx-xxxx-xxxx-xxxxxxxxxxxx”) # change to your client id from Step D1
utoken = umi.get_token(“https://ossrdbms-aad.database.windows.net”).token
utoken = str(utoken).strip()
uconn = mysql.connector.connect(**{
‘host’:’mimysql-db.mysql.database.azure.com’, # change to your server
‘user’:’miuser’, # change to your username
‘password’:utoken,
‘auth_plugin’:’mysql_clear_password’,
‘client_flags’: [mysql.connector.ClientFlag.SSL],
‘database’:’test’ # change to your database
})
ucursor = uconn.cursor()
ucursor.execute(“SELECT * FROM welcome_test;”) # change to your table
urows = ucursor.fetchall()
uret = “”
for urow in urows:
uret += str(urow[1])
uconn.commit()
ucursor.close()
uconn.close()
# —————————-
return func.HttpResponse(sret + uret)
Please note that the code I provided in this tutorial is only suitable for the testing phase. Its purpose is to verify usability and it is not intended for production use. Ultimately, please make the corresponding modifications based on the business functionality and security guidelines of your own environment.
Once the deployment is complete, you can proceed with testing. We can observe that the Function App will call the authentication endpoint in the background to get an access token. It will then use this token to interact with the database and subsequently print out the queried data.
An important thing in the code is the following snippet.
‘auth_plugin’:’mysql_clear_password’,
Referencing Step E-2, when “cch” used the MySQL console during the connection process, the –enable-cleartext-plugin parameter was used. This parameter means that the client can send the password to the server in clear text because the password is already in the form of an encrypted token. Unlike traditional plain-text passwords that need to be encrypted on the client side before transmission, it can be sent directly in plain text to the server. Different languages and different MySQL connectors may require similar configurations, so this should be noted carefully.
References
Active Directory authentication – Azure Database for MySQL | Microsoft Learn
Use Microsoft Entra ID – Azure Database for MySQL | Microsoft Learn
How to create users for Azure Database for MySQL | Microsoft Learn
Connect with Managed Identity – Azure Database for MySQL | Microsoft Learn
Set up Microsoft Entra authentication – Azure Database for MySQL – Flexible Server | Microsoft Learn
Azure AD authentication for Azure MySQL! (microsoft.com)
Microsoft Tech Community – Latest Blogs –Read More
Access to Outlook Classic
HOW CAN I ACCESS MY OUTLOOK CLASSIC MAIL ETC TO EXPORT?
YOUTUBE VIDEO FOUND IS RUBBISH.
ANY AND ALL HELP WILL BE VERY MUCH APPTRRECIATED!
MORE COUNTLESS HOURS NEEDED TO SORT OUT MICROSFT STRANGLEHOLD ONM USERS! YOU HAVE NO CHOICE – YOU WILL DO WHAT WE SAY!!!!!!!!!!!!!!
HOW CAN I ACCESS MY OUTLOOK CLASSIC MAIL ETC TO EXPORT? YOUTUBE VIDEO FOUND IS RUBBISH. ANY AND ALL HELP WILL BE VERY MUCH APPTRRECIATED! MORE COUNTLESS HOURS NEEDED TO SORT OUT MICROSFT STRANGLEHOLD ONM USERS! YOU HAVE NO CHOICE – YOU WILL DO WHAT WE SAY!!!!!!!!!!!!!! Read More
Synchronize any of the folders to the windows explorer interface.
Hello
Please i need your help on this issue.
I can edit all of the files using the Sharepoint web interface. But I can’t synchronize any of the folders to the windows explorer interface.
Hello Please i need your help on this issue. I can edit all of the files using the Sharepoint web interface. But I can’t synchronize any of the folders to the windows explorer interface. Read More
Azure PostgreSQL, Entra ID Authentication and .NET
I’m currently working on a project in which we are using Entra ID rather than a traditional Postgre username and password. This is a great way to secure your database and ensure that only the right people have access to it.
Note: For the purpose of this article, I’m going to use Entra ID to refer to a user identity, as well as a managed identity such as a service principal, as the approach is the same in this context here.
The above linked documentation covers how you would setup the Azure resource with Entra ID as the authentication mode, so I won’t go over that here (also, you can configure that when you initial create the database, or using a Bicep script), instead I want to look at how we use that in a .NET application, because when you’re connecting using Entra ID you don’t have a password to use, or at least not in the traditional sense.
For this, I’m going to use the Npgql library, which is the most popular PostgreSQL driver for .NET. It’s a great library and has a lot of features, and integrates nicely with Entity Framework Core and .NET Aspire.
What makes connecting different
Before we look at the how of connecting, we need to understand why this is a little different to using a username/password approach. When working with a PostgreSQL database that uses a username/password, you would have a connection string that looks like this:
Server=myServerAddress;Port=5432;Database=myDataBase;User Id=myUsername;Password=myPassword;
But when connecting using Entra ID, it looks like this:
Server=server-name.postgres.database.azure.com;Database=postgres;Port=5432;Username=<Entra ID>;Ssl Mode=Require;
Notice how there is no Password field in the connection string. This is because when you connect using Entra ID, you don’t have a password to use. Instead, you need to use a token that is generated by Entra.
Generating a token
When you connect to the database using Entra ID, you need to request an access token from Entra that you can use to authenticate. You can see this in action using the Azure CLI:
az account get-access-token –resource-type oss-rdbms
Which returns something like this:
{
“accessToken”: “<nope!>”,
“expiresOn”: “2024-05-31 17:52:59.000000”,
“expires_on”: 1717141979,
“subscription”: “<nope!>”,
“tenant”: “<nope!>”,
“tokenType”: “Bearer”
}
If you extract the accessToken from the JSON you can then plug that into the connection string for PostgreSQL in the Password argument and you’re good to go.
But it’s not really practical to be running the Azure CLI every time you want to connect to the database, especially since this token is only short lived (you can see the expiry date in the JSON above). Instead, we’re going to want to do this in .NET, and for that we’ll use the Azure.Identity NuGet package.
Using Azure.Identity
Azure.Identity is a library that provides a way to authenticate with Azure services using the Azure SDK, and it contains a class called DefaultAzureCredential that can be used to authenticate. This class is actually a roll-up of a number of different authentication sources, such as Managed Identity, as well as the Azure CLI, Visual Studio, and a bunch of other sources (check out the docs to see all the sources).
To use DefaultAzureCredential you need to install the Azure.Identity NuGet package:
dotnet add package Azure.Identity
Then you can use it in your code like this:
using Azure.Identity;
var credential = new DefaultAzureCredential();
var ctx = new TokenRequestContext([“https://ossrdbms-aad.database.windows.net/.default”]);
var tokenResponse = await credential.GetTokenAsync(ctx);
Console.WriteLine(tokenResponse.Token);
The important part here is that we’re providing a specific scope to the TokenRequestContext of https://ossrdbms-aad.database.windows.net/.default, which grants access to the Azure PostgreSQL Flexible Server. It’s what is being done with the az account get-access-token call and the –resource-type oss-rdbms argument. With this in C# though, we’re able to get the token and then use that to connect to the database.
Handling Token Expiry
One thing to note is that the token that is returned by DefaultAzureCredential is short lived, and will expire after a certain amount of time (24 hours service principal, 4 hours for a user token). This is fine for, say, a console app that is only running for a short period of time, but this becomes a problem if you’re using the connection string in something that is long running, like a web app, since the NpgsqlDataSourceBuilder, the type that is used to build the connection string, should be a singleton.
Thankfully, the authors of Npgsql have given us an approach to handling token refreshes in the box using a Periodic Password Provider. With this feature, we can provide a callback function to be run that will retrieve the password when a connection is opened, and then cache that password for a certain amount of time. This means that we can use the DefaultAzureCredential to get the token, and then use that token to connect to the database.
NpgsqlDataSourceBuilder dataSourceBuilder = new(builder.Configuration.GetConnectionString(“Database”));
dataSourceBuilder.UsePeriodicPasswordProvider(async (_, ct) =>
{
DefaultAzureCredential credential = new();
TokenRequestContext ctx = new([“https://ossrdbms-aad.database.windows.net/.default”]);
AccessToken tokenResponse = await credential.GetTokenAsync(ctx, ct);
return tokenResponse.Token;
}, TimeSpan.FromHours(4), TimeSpan.FromSeconds(10));
On the dataSourceBuilder we call the UsePeriodicPasswordProvider method, passing in a callback function that will get the token, and then two TimeSpan objects that represent the refresh period and the failure refresh period. The refresh period is how often the token will be refreshed, and the failure refresh period is how long to wait before trying to refresh the token again if the token retrieval fails.
Connecting it all up
Now that we know how we can retrieve a token to act as the password for our connections, let’s look at how to connect it all up for a local dev or Azure deployed app:
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
var connStr = builder.Configuration.GetConnectionString(“db”);
NpgsqlConnectionStringBuilder csb = new(connStr);
if (!string.IsNullOrEmpty(csb.Password))
{
builder.AddNpgsqlDataSource(“db”);
}
else
{
builder.AddNpgsqlDataSource(“db”, dataSourceBuilder =>
{
dataSourceBuilder.UsePeriodicPasswordProvider(async (_, ct) =>
{
DefaultAzureCredential credential = new();
TokenRequestContext ctx = new([“https://ossrdbms-aad.database.windows.net/.default”]);
AccessToken tokenResponse = await credential.GetTokenAsync(ctx, ct);
return tokenResponse.Token;
}, TimeSpan.FromHours(4), TimeSpan.FromSeconds(10));
});
}
// and the rest of your app code
Here we’re getting the connection string and creating a NpgsqlConnectionStringBuilder from it so that it gets parsed for us. If the connection string we have has a password, then we can just use that as normal, but if it doesn’t have a password, then we can use the UsePeriodicPasswordProvider method to get the token and use that as the password.
This means we can run locally against a database that uses username/password style access (since we don’t have Entra ID locally), and then deploy to Azure and use Entra ID without having to change the code.
Conclusion
When porting an app that uses PostgreSQL to using Managed Identity I was expecting that it would be quite a lot of work to manage the token retrieval and expiry, initially I thought that it’d require doing a bunch of work to discard the singleton for the NpgsqlDataSourceBuilder and then recreate it when the token expired. But thanks to the UsePeriodicPasswordProvider method, it’s actually quite easy to manage the token retrieval and expiry, and it’s all handled for you.
Microsoft Tech Community – Latest Blogs –Read More
Can’t Unlock Account
My wife’s Hotmail account has recently been locked (we don’t know why). She usually logs-in using her IPad which auto-logs-in but it recently asked her to answer the security questions then locked-it. I’ve also tried from my desktop Outlook and can’t get in either. The problem I think is that she has had this account over 25 years and the two security questions and meaningless to us now. It’s very frustrating as we know the password, we supply the security code (which goes to my email) but it still won’t let us in (we just get an email saying “the information you provided was not sufficient for us to validate your account ownership”). Yes I agree we should have supplied security questions which were more memorable but that’s hindsight and doesn’t help.
We have tried a number of phone-numbers and website links we’ve found online but not of them work. It’s very annoying that there isn’t a contactable support system.
Any help at all in solving this problem will be very welcome.
Thank you.
My wife’s Hotmail account has recently been locked (we don’t know why). She usually logs-in using her IPad which auto-logs-in but it recently asked her to answer the security questions then locked-it. I’ve also tried from my desktop Outlook and can’t get in either. The problem I think is that she has had this account over 25 years and the two security questions and meaningless to us now. It’s very frustrating as we know the password, we supply the security code (which goes to my email) but it still won’t let us in (we just get an email saying “the information you provided was not sufficient for us to validate your account ownership”). Yes I agree we should have supplied security questions which were more memorable but that’s hindsight and doesn’t help.We have tried a number of phone-numbers and website links we’ve found online but not of them work. It’s very annoying that there isn’t a contactable support system.Any help at all in solving this problem will be very welcome.Thank you. Read More
GROUPBY yields a #VALUE! error in the [filter_array]
GROUPBY yields a #VALUE! error in the [filter_array]
Can you help me?
GROUPBY yields a #VALUE! error in the [filter_array]Can you help me? Read More
b26100 – Creating archive – additional options – no progress bar on large operations
When compressing larger files with the new create archive options there will be no progress bar, until File Explorer really finished and writes the file to disk.
The dialogue will show “not responding” meanwhile. Only mouse cursor “busy” and taskmanager reveals that something is still going on.
When compressing larger files with the new create archive options there will be no progress bar, until File Explorer really finished and writes the file to disk.
The dialogue will show “not responding” meanwhile. Only mouse cursor “busy” and taskmanager reveals that something is still going on.
https://aka.ms/AAqogye Read More
b26100 – Feedback hub does not allow repro steps – greyed out
Problem Steps Recorder is installed in Optional Features.
In Feedback hub “repro steps” on WS 2025 b26100 is greyed out. This way it is hard to provide actionable / quality feedback. Anyone else?
I believe this is not intended. The general issue around PSR and feedback hub is appears to be unresolved for Windows Client / Server. Thank you for looking into it.
Problem Steps Recorder is installed in Optional Features.
In Feedback hub “repro steps” on WS 2025 b26100 is greyed out. This way it is hard to provide actionable / quality feedback. Anyone else?I believe this is not intended. The general issue around PSR and feedback hub is appears to be unresolved for Windows Client / Server. Thank you for looking into it.
https://techcommunity.microsoft.com/t5/windows-server-insiders/problem-steps-recorder-deprecation-what-does-this-mean-for/m-p/4022944
https://support.microsoft.com/en-us/windows/steps-recorder-deprecation-a64888d7-8482-4965-8ce3-25fb004e975f
Read More
Help! I’m locked out of email because full. But it’s not! Support gives error messages
Help, I am locked out of my main email (hotmail) account. If I try to send email I get:
This message can’t be sent because your mailbox is full.
But I have purchased basic 365 and when it checks it says I’m only using 24% storage.
When I try to contact customer support via web chat I get an error message. I’ve rebooted twice, still stuck.
Any help greatly appreciated!
Help, I am locked out of my main email (hotmail) account. If I try to send email I get:This message can’t be sent because your mailbox is full. But I have purchased basic 365 and when it checks it says I’m only using 24% storage. When I try to contact customer support via web chat I get an error message. I’ve rebooted twice, still stuck. Any help greatly appreciated! Read More