what’s the role of a “Master” database in a SQL Azure world?


One of the question that pops up in the head of first-time SQL Azure user is “What is Master Database doing in my server”. They try to delete/drop it. That does not happen. Fun fact: I tried dropping Master database when I had got my hand on SQL Azure for the first time. Any-who what we speculate is that  “OMG! I paying for this SQL Azure Master database!” Wait…No, read this:

You are not charged for the SQL Azure Master Database.

Ok Good news, But why does this “read-only” master database exist?

Here is the information I have used that is available via SQL Azure Master Database:

  • It has SQL Azure usage metrics
  • It stores logins for a given SQL Azure LOGICAL server (To manage Server-Level security)
  • To view list of all databases via sys.databases
  • To create databases via TSQL. You do that by logging into master database first.

What do use SQL Azure master database for?

That’s about it for this post.

And Let’s connect! I Look forward to Interacting with you on any of these people networks:

paras doshi blog on facebookparas doshi twitterparas doshi google plus

Excel file does not open, Its stuck indefinitely in “opening in protected view” stage


I downloaded an Excel file (It had the PowerPivot Model) from Internet on my Windows Server Dev Machine. When I tried opening that file on my machine it got stuck in the “Opening in protected View” stage:

excel opening in protected view message

I was able to solve the issue and I would document how I did that in this blog-post:

1. Go to START > Open Excel

2. Go to File > Options > Trust Center > Trust Center Settings

excel 2010 trust center settings

3. In the Trust Center. Go to Protected View

Here you can disable the Protected View based on your needs.

Since I wanted to open a file that originated from Internet, I disabled “Protected View for files originating from the Internet”.

Clicked on OK.

4. Now go to File > Open that FILE!

Once you are done, You can enable the protected view. Important!

So That’s about it for this post, I hope it was helpful!

Did you knew: You can change the Location of “Desktop” folder


Did you knew that we can change the location the “Desktop” folder. Yes! The default location where files/folders are stored is “c:users<xyz>desktop” and you can change this.

But why do you want to do this?


2. It’s a good practice to separate USER data and SYSTEM data. So if you have a D (Or E?) drive in your computer, you can change the location of the Desktop from C to D (or E).

So how do you do that?

1. Go to c:users<xyz>desktop

2. Right Click on the Desktop Folder and select “Properties”

dekstop folder properties 3. In the properties dialog box. Select “Location” and after entering the NEW LOCATION – click on MOVE. 

location property of the desktop folder

Click on Apply. You’re done!

I tested it on Windows 7 and Windows Server 2008 R2 and it works. It does not seem to work with Windows XP. If you know of any windows OS’s where it works – let us know in the comments!

I thought of writing this as a blog-post after this tip that I submitted was well-received. Any-who that’s about it for this post, I hope it was helpful!

Manage ALL relationship’s between tables while building PowerPivot Model


One of the task while building a PowerPivot Model is to create/Edit/Delete Relationships between tables. With SQL Server 2012 release of PowerPivot for Excel, we now have a Diagram view and this makes our task of defining relationships easier! Great addition. Any-who when you view your model in Diagram Model, This is how it looks:

powerpivot sql server 2012 diagram view

To Edit a Relationship, You can click on the Relationship represented by the arrow and it would pop up an “Edit Relationship” Dialog Box.

But what if you wanted to Manage ALL relationships of this Model? You can do this!

GO TO Design Tab > Click On Manage Relationships.

manage relationships powerpivot 2012

Now here you can manage (create/edit/delete) relationships among tables. Very easy!

manage relationships dialog box powerpivot 2012

That’s about it for this post. Your feedback is welcome!


Bird’s Eye view of SharePoint BI Dev Environment Setup process (SQL Server 2012, Sharepoint 2010)



Step 1
Get the Binaries: SQL Server 2012 RTM, Windows Server 2008 R2, Sharepoint 2010 SP1 x64
Setup a VM: Check the System Requirements and configure the VM. And then Install Windows Server 2008 R2 x64 SP1 (and updates)
Step 2
Add Server Roles: Application Server, File Services, Web Server
Change Server Name to a friendly Name
Step 3
At this stage, I cloned the Virtual Machine. And the following steps will be performed on the cloned (copied) virtual Machine. Thanks for the tip that I found here.
The benefit of cloning is that you have a Windows Server 2008 R2 VM Template that you can use in Future.
Step 4
On the cloned VM, run dcpromo.exe. This will make your server the Domain Controller and it will install ADDS binaries if they are not installed prior to running dcpromo.exe
Step 5
Install Sharepoint per-requisites
Install Sharepoint 2010 SP1
Note: Do NOT run the SharePoint configuration wizard
Step 6
Run SQL server setup to Install “SQL Server PowerPivot for SharePoint”:
SQL Server PowerPivot For Sharepoint
Post-Installation: Launch the PowerPivot configuration tool to configure the server
SQL Server PowerPivot For Sharepoint post installation
Step 7
perform a NEW installation of SQL Server
Analysis Services Mode: Tabular
Step 8
perform a NEW installation of SQL Server
Analysis Services Mode: Multi-Dimensional
Step 9
Verifying Reporting Services Installed in Sharepoint Mode. Tutorial here.
Also Extend the Document Libraries to include BISM connections.[Read Follow up Blog Post: How to extend document library to connect to Tabular Model to create Power View reports ]
Step 10
At this point, I installed and ran the SQL Server Training Kit 2012. It will list various “Missing” softwares like office, silverlight and also it will help you install sample databases. It’s a nice “shortcut” to make sure that you a “complete” sharepoint BI dev Environment
sql server training kit 2012 check dependencies

Resources that I refer to for configuration Details:
1) SQL Shorts Video to configure SharePoint BI environment
2) Getting up and running with SQL Server Denali for Business Intelligence (Crescent and PowerPivot in CTP3)
3) Deployment Checklist: Reporting Services, Power View, and PowerPivot for SharePoint

That’s about it for this post. I’ll refer to this post whenever I have to setup my SharePoint BI Dev Environment. And if you are in the same position, then i hope the Bird’s eye view and the resources listed are helpful to you as well.

How to disable the password expiration policy in Windows Server 2008 R2 (Demo Machine) ?


Before we begin, Please note that:

1) it’s applicable for your Demo Machine only. Or your Dev Machine. The reason I am documenting it that I do not want to change the password of Windows Server on which I have my Sharepoint BI dev environment Setup. It’s MY Dev Environment and I am NOT sharing it with other folks PLUS I do not anything sensitive on it, So I can afford disabling the password expiration policy.

2) This Blog Post will Show you step by step procedure to disable the password expiration policy IF your server is NOT a Domain Controller. If it’s a domain controller then the steps are different.

UPDATE: Find a blog post about disabling password expiration policy for Domain Controller: http://parasdoshi.com/2012/06/19/how-to-disable-password-expiration-for-windows-server-2008-r2-domain-controller/

Now, Let’s begin:

1. Go to Start, Administrative Tools, Local Security Policy

2. Under Security Settings, Select Account Policies

3. Click on Password Policy.

windows server disable password expiration policy

4. Change the Value of Maximum Password Age to “0”

windows server disable password expiration policy

5. Click on Apply.

That’s about it. You have disabled the password expiration on your Windows Server Demo machine (which is not a domain controller)

If you are searching for a resource that could help you disable the password expiration policy on windows Server (Domain Controller) then please refer: http://forums.iis.net/t/1148164.aspx

UPDATE: Find a blog post about disabling password expiration policy for Domain Controller: http://parasdoshi.com/2012/06/19/how-to-disable-password-expiration-for-windows-server-2008-r2-domain-controller/

Half way through Toastmaster’s competent communicator manual, it’s one of my career goal.


Mastering the art of Public Speaking is one of my career goals. Four years ago, I had participated in an impromptu speech competition. The way it works is that you get a question and you are supposed to speak on that topic without any prior preparation. So I was given a topic – it was fairly broad topic – I “could” have spoken for about 3 minutes – but, I froze. let’s call it fear of public speaking. From that day on, I decided to be better at this scary thing called public speaking. I took up positions in student clubs that required frequent public speaking. One such position was being a President of a Technical student club and I got to practice in front of audience – and that definitely helped. Other role was representing my University as Microsoft student partner (3 years ago) – and in this role, I delivered technical topics as I can to practice public speaking and share what I knew. And to continue practicing public speaker – I joined Toastmaster’s club around 9 months back. And today I completed 5 out of 10 modules of competent communicator manual. I encourage anyone who wants to practice public speaking to join Toastmaster’s club. I have written about this club before, you can read that here: Want to practice public speaking? Join Toastmaster’s!

That’s about it for this post. Just wanted to share my career goal with you all!

Getting started with creating Java app on Google App engine – Guest Post by Dhwaneet Bhatt


This is a Guest Post by Dhwaneet Bhatt. He’s one awesome programmer and technologist with an innate ability to master any technical topic very quickly. Here’s his twitter profile: https://twitter.com/#!/dhwaneetbhatt for you to able to connect with him.

If you searching for tutorial to get you started with python app on Google App engine. click here. And Here’s his post which would help you to get started with creating a java app on Google App engine:

1. We will be using Eclipse IDE to code a simple Java App for Google App Engine because it is very simple, the other option is building the application using Ant script, which involves a lot of code writing, and I prefer to keep things simple.

2. Download Eclipse from the following URL:


The App Engine has support for all the versions but we prefer to use the latest version, so download Eclipse Indigo (3.7.x). On the web page, download from the first link that reads “Eclipse IDE for Java EE Developers”. That will download Eclipse 3.7.x.

3. Extract eclipse and start, you will be prompted to create a workspace, create it anywhere you like and proceed.


4. Once in eclipse, we need to install the Google App Engine plugin. Go to Help->Install New Software, once there, enter the following URL in the “Work With” text box: http://dl.google.com/eclipse/plugin/3.7

Note: 3.7 in the URL corresponds to the Eclipse version, if you are using some other version, change the last number according to that. Or you can visit this link that gives all the URLs:


Click on the “Add” button and this repository will be added to Eclipse. Next time you can directly use this repository name for downloading any Google related plugin. It will then download a list of plugins associated with this URL.


Select the options “Google Plugin for Eclipse 3.7” under Google Plugin for Eclipse and Google App Engine Java SDKunder SDKs. These are the basic tools required for deploying a simple app to App Engine.

Click Next (2 times), and Accept the Terms of Agreement (after reading of course) and then it will take a couple of minutes for the plugins to get installed. Go grab a cup of coffee.

5. After it is installed, Eclipse will prompt for restart. Restart the Eclipse.

6. Click on New -> Other… and from the list select “Web Application Project” under Google”, give a name for your project and a package structure, and untick Use Google Web Toolkit and click Finish.


7. Now comes the surprise, you don’t need to do anything now. Eclipse has already created all the files required for the Hello World App, but still, I will be taking them one by one so that you can understand the necessary steps for writing a custom app.

8. First comes the deployment descriptor (for people who are new to J2EE, I recommend reading about J2EE first), it is the file web.xml located in the location war/WEB-INF/web.xml.

[sourcecode language=”xml”]
<?xml version="1.0" encoding="utf-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"




http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">













The web.xml contains mapping for the default servlet created with the name DhwaneetbhattjavaappServlet, and its URL mapping. This is the URL which will allow the servlet to give a response. And index.html located under war/ is the first file to be loaded when the application is started.

9. The next file is a pretty simple HTML file that contains nothing but a simple link to call the servlet.

[sourcecode language=”html”]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">



<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<title>Hello App Engine</title>



<h3>Hello App Engine!</h3>

<a href="dhwaneetbhattjavaapp">Servlet</a>



10. The next important file is the servlet itself – which responds to the request by the html file. The doGet method means that the request coming from the html file is a GET request. You can repond to a POST request by implementing the doPost method and changing the type of request coming from html form to POST.

[sourcecode language=”java”]
package com.dhwaneetbhatt.helloworldjavaapp;

import java.io.IOException;
import javax.servlet.http.*;

public class DhwaneetbhattjavaappServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.getWriter().println("Hello, world");

11. The last file is the appengine-web.xml file which is located in the WEB-INF/ directory. App Engine needs one additional configuration file to figure out how to deploy and run the application. This file includes the registered ID of your application (Eclipse creates this with an empty ID for you to fill in later), the version number of your application, and lists of files that ought to be treated as static files (such as images and CSS) and resource files (such as JSPs and other application data). In the tag, enter the name of your App Id that you had chosen while registering for the app previously.

[sourcecode language=”xml”]
<?xml version="1.0" encoding="utf-8"?>

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">




<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>



12. That’s about all the files we’ve covered. There are a couple of other files – configuration files in META-INF, logging.properties file and a favicon file that are unimportant at the moment. As I said Keep it Simple.

13. Now we are ready for a test run. Right click on the project from the Project Explorer, Run As -> Web Application, it will start the server. The default port is 8888. Open any web browser, type http://localhost:8888, you web application will run.



14. Before you Deploy it to Google App Engine – you’ll need to create an application on Google App Engine and Get the App Id. Scroll to the bottom of the blog post for a step by step guide.

Now that we have tested the code on our machine, it is time to deploy it go Google App Engine. Right click on the project, Google -> Deploy to App Engine, login with your credentials and on the next screen that comes, click on Deploy.


15. Your app will be deployed on the App Engine. Open any browser and enter the URL: http://dhwaneetbhattjavaapp.appspot.com and you will have the “Hello, world” app ready for the world to access.

– Dhwaneet Bhatt


*Here’s a step by step Tutorial to create an application on Google App Engine and getting the app id: [from Source]

Now, let’s sign up for a Google App Engine Account with a Google account you may have. Part of the process includes verification via a code sent to your mobile device – so be ready to provide your mobile number. And every Google Account gets to deploy 10 applications with a Google App Engine admin account.

Now, To sign up for Google APP engine. Go to: https://appengine.google.com/ and if you have a Google Apps account go to: https://appengine.google.com/a/<DOMAIN.COM>

Now, sign in with your Google account and you would be asked to verify your account:


FAQ for this process is here: http://code.google.com/appengine/kb/sms.html

Now, once you successfully verify your account, you would see something like:


And click on create application and fill in the following details. For now, fill in the App ID and the App Title. Leave other options as default for now. And yes, please check the availability of your app id and this will also be your URL. The URL will take the form.appspot.com


Scroll down and you will find a “create application”. please click on it. You will also see a message: “Application registered successfully”.

Reports hosted on SQL Azure reporting (preview) accessed via Windows Phone, iPhone and Android phones!


Here are screenshots of reports hosted on SQL Azure reporting preview accessed via Windows Phone, iPhone and Android Smartphone. I knew one can access reports using browser and so just wanted to test them on Windows Phone, iPhone and Android.

Note: Report is just for demo purpose. So I have kept it very simple.

Here are the screenshots:

1. Windows Phone:windows phone sql azure reporting

2. iPhone:iPhone SQL Azure reporting

3. Android Smartphone:
sql azure reporting android phone

Note: I have not tested it but I have heard reports on SQL Azure reporting are accessible via iPad too. 

Simran Jindal confirmed that It works great on iPad too!

Conclusion: These opens up a whole new world of possibilities for businesses. Business users would be able to get access to reports from anywhere in the world. Think of reports that are built on top of Data Marts hosted on cloud. They are kept in sync with Data that resides on-premise (locally). We have exciting times ahead!

Getting Started Guide for Report Readers (SQL Azure Reporting)
Guidelines and Limitations for SQL Azure Reporting Preview