Microsoft KB Archive/900499

= You receive the 'Unable to get global configuration data' error message in Microsoft Windows SharePoint Services or in Microsoft Office SharePoint Portal Server 2003 =

Article ID: 900499

Article Last Modified on 7/12/2005

-

APPLIES TO


 * Microsoft Office SharePoint Portal Server 2003
 * Microsoft Windows SharePoint Services

-





SYMPTOMS
Assume that you try to perform one or more of the following tasks in Microsoft Windows SharePoint Services or in Microsoft Office SharePoint Portal Server 2003:
 * You try to use a browser to connect to a Windows SharePoint Services Web site or to a SharePoint Portal Server Web site.
 * You try to access specific SharePoint Central Administration settings. For example, you try to access the Configure default e-mail server settings setting or the Manage Web server list setting.
 * You try to configure the configuration database server by using the Set Configuration Database Server option on the Windows SharePoint Service Central Administration page.

When you try to perform any one of these tasks, you may receive the following error message:

Unable to get global configuration data



CAUSE
This behavior occurs when one of following conditions is true:
 * The user account to which the application pool identity for the virtual server is configured does not have the permissions that are required to access the content folder for the virtual server.
 * The virtual server content database is located on a remote computer that is running Microsoft SQL server.
 * The account that is used by the virtual server does not have database owner permissions or database access permissions for the content database.



RESOLUTION
To resolve this behavior, you must use one of the following methods depending on your configuration.

Method 1
By default, the Default Web site uses the IIS_WPG group account. The IIS_WPG group account contains accounts that are used to run the virtual server.

However, the IIS_WPG group account may not have the required permissions to access the new content folder when you create a new virtual server and a new content directory.

In this situation, you must add the IIS_WPG group account or the account that is used to run the virtual server on the content folder. Then, you must grant the following permissions:
 * Read & Execute
 * List Folder Contents
 * Read

To assign security permissions to a folder, follow these steps:  Start Windows Explorer. To do this, click Start, click Run, type explorer, and then click OK. Locate and then right-click the folder where the content of your virtual server is located, and then click Properties. Click the Security tab. Click Add, type IIS_WPG, click Check Names, and then click OK.

Note If you use an account other than the IIS_WPG account to run the virtual server, modify this step accordingly. In the Group or user names list, click the account that you added in step 4. Click to select all the following check boxes in the Allow column:

Read & Execute

List Folder Contents

Read

</li> Click OK.</li></ol>

Method 2
If the Microsoft Windows SharePoint Services content database is located on a remote computer that is running SQL Server. The account that is used to run the virtual server cannot access the content database.

In this situation, you must add the account to the content database. Then, you must grant the account database owner permissions. To do this, follow these steps: <ol> Use an account that has administrative permissions to log on to the computer that is running SQL Server and that is hosting the SharePoint content database.</li> Click Start, and then click Enterprise Manager.</li> In the SQL Server Enterprise Manager MMC snap-in, expand Microsoft SQL Servers, expand SQL Server Group, expand the SQL server that is hosting the SharePoint SQL database, expand Databases, right-click the SharePoint content database, and then click Properties.</li> On the database properties dialog box, click the General tab, and then view the account that is next to Owner.

Verify that this account is the same account that is used for the SharePoint virtual server IIS application pool.

If the SharePoint virtual server IIS application pool is using the Network Service account, continue to step 5.

If the SharePoint virtual server IIS application pool is not using the Network Service account, you must remove this account. Then, configure the database owner for the Windows SharePoint Services content and configuration databases. To do this, follow these steps: <ol style="list-style-type: lower-alpha;"> In SQL Enterprise Manager, expand Security, and then click Logins.</li> In the details pane, right-click the account that you want to remove, and then click Delete.</li>  After you have removed the account, you must configure the database owner for the Windows SharePoint Services content and the configuration databases. To do this, follow these steps.

For the content database
<ol> On the server that is running SQL Server, click Start, point to All Programs, point Microsoft SQL Server, and then click Query Analyzer.</li> In the Connect to SQL Server dialog box, specify the name of the server to which you want to connect, specify the type of authentication, and then click OK.</li> On the Query menu, click Change Database.</li> In the Select Database of ServerName dialog box, click the content database that you want to update, and then click OK.</li>  In the Query pane, type the following lines: DECLARE @AdminVSAccount nvarchar(255) DECLARE @ContentVSAccount nvarchar(255) SET @ContentVSAccount = N'Domain\ContentAccount'; SET @AdminVSAccount = N'Domain\AdminAccount'; EXEC sp_grantlogin @ContentVSAccount; EXEC sp_grantlogin @AdminVSAccount; EXEC sp_changedbowner @AdminVSAccount; IF NOT EXISTS (SELECT * FROM sysusers WHERE name=@ContentVSAccount) EXEC sp_grantdbaccess @ContentVSAccount; EXEC sp_addrolemember 'db_owner', @ContentVSAccount; Note Where  is the domain user account for the content virtual server, and where   is the domain user account for the administration virtual server. </li> On the Query menu, click Execute to run the query.

Note If the domain user account for the content virtual server and the administration virtual server are the same user account, SQL Query Analyzer displays a message that is similar to the following when you run the query:

Database owner changed. Server: Msg 15023, Level 16, State 1, Procedure sp_grantdbaccess, Line 127 User or role 'domain\account' already exists in the current database. Server: Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 66 User or role 'domain\account' does not exist in this database.

However, the operation is completed successfully.</li></ol>

For the configuration database
<ol> On the server that is running SQL Server, click Start, point to All Programs, point Microsoft SQL Server, and then click Query Analyzer.</li> In the Connect to SQL Server dialog box, specify the name of the server to which you want to connect, specify the type of authentication, and then click OK.</li> <li>On the Query menu, click Change Database.</li> <li>In the Select Database of ServerName dialog box, click the configuration database that you want to update, and then click OK.</li> <li> In the Query pane, type the following lines: DECLARE @AdminVSAccount nvarchar(255) DECLARE @ContentVSAccount nvarchar(255) SET @ContentVSAccount = N'Domain\AdminAccount'; SET @AdminVSAccount = N'Domain\AdminAccount'; EXEC sp_grantlogin @ContentVSAccount; EXEC sp_changedbowner @AdminVSAccount; IF NOT EXISTS (SELECT * FROM sysusers WHERE name=@ContentVSAccount) EXEC sp_grantdbaccess @ContentVSAccount; EXEC sp_addrolemember 'db_owner', @ContentVSAccount; EXEC sp_addsrvrolemember @AdminVSAccount, 'dbcreator' EXEC sp_addsrvrolemember @AdminVSAccount, 'securityadmin' Note Where is the domain user account for the content virtual server, and where  is the domain user account for the administration virtual server. </li> <li>On the Query menu, click Execute to run the query.

Note If the domain user account for the content virtual server and the administration virtual server are the same user account, SQL Query Analyzer displays a message that is similar to the following when you run the query:

Database owner changed. Server: Msg 15023, Level 16, State 1, Procedure sp_grantdbaccess, Line 127 User or role 'domain\account' already exists in the current database. Server: Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 66 User or role 'domain\account' does not exist in this database.

However, the operation is completed successfully.</li></ol> </li> <li>After you run the two SQL queries, right-click the SharePoint content database, and then click Properties.</li> <li>On the General tab, make sure that the account next to Owner is the administration virtual server application pool account.</li></ol>

If the database owner is the correct account and you still cannot access the database, you must grant access to the content and configuration databases. To do this, follow these steps: <ol> <li>In SQL Enterprise Manager, expand Security, expand Logins, and then double-click the account in which the virtual server is running.</li> <li>Click the Database Access tab, click to enable the Permit box next to the content and configuration databases.</li></ol> </li> <li>When the SharePoint virtual server IIS application pool is using the Network Service account, you must grant the Network Service account the correct permissions in SQL Server. To do this, follow these steps: <ol style="list-style-type: lower-alpha;"> <li>In the SQL Server Enterprise Manager MMC snap-in expand the Security folder, and then click Logins.</li> <li>Double-click the Network Service account.</li> <li>In the SQL Server Login Properties dialog box, click the General tab, and make sure that the Grant access option is enabled.</li> <li>Click the Server Roles tab, and then grant the Network Service account the following roles, and then click OK:

System Administrator

</li></ol> </li></ol>

Note To force the execution of the page, you must browse directly to http://server/default.aspx. This is because the error message may still be cached in the browser.

<div class="references_section">