<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>some thoughts... - Security</title>
    <link>http://www.fits-consulting.de/blog/</link>
    <description>IT makes the world go round - and sometimes stops it...</description>
    <language>en-us</language>
    <copyright>Markus Fischer</copyright>
    <lastBuildDate>Thu, 04 Jan 2007 19:19:56 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>blog@fits-consulting.de</managingEditor>
    <webMaster>blog@fits-consulting.de</webMaster>
    <item>
      <trackback:ping>http://www.fits-consulting.de/blog/Trackback.aspx?guid=53aeb9d5-cfa0-4928-aa49-0c4773f3d0b0</trackback:ping>
      <pingback:server>http://www.fits-consulting.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.fits-consulting.de/blog/PermaLink,guid,53aeb9d5-cfa0-4928-aa49-0c4773f3d0b0.aspx</pingback:target>
      <dc:creator>Markus Fischer</dc:creator>
      <wfw:comment>http://www.fits-consulting.de/blog/CommentView,guid,53aeb9d5-cfa0-4928-aa49-0c4773f3d0b0.aspx</wfw:comment>
      <wfw:commentRss>http://www.fits-consulting.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=53aeb9d5-cfa0-4928-aa49-0c4773f3d0b0</wfw:commentRss>
      <title>Migrating to Windows Vista Ultimate - post-installation tips...</title>
      <guid isPermaLink="false">http://www.fits-consulting.de/blog/PermaLink,guid,53aeb9d5-cfa0-4928-aa49-0c4773f3d0b0.aspx</guid>
      <link>http://www.fits-consulting.de/blog/PermaLink,guid,53aeb9d5-cfa0-4928-aa49-0c4773f3d0b0.aspx</link>
      <pubDate>Thu, 04 Jan 2007 19:19:56 GMT</pubDate>
      <description>&lt;p&gt;
I used the free time after Christmas to install Windows Vista Ultimate and Office
2007 - instead of doing an upgrade of my current Windows XP system&amp;nbsp;I choosed
to do complete new installation...
&lt;/p&gt;
&lt;p&gt;
I succeeded in a short time, but afterwards I had some trouble and therefore I had
to solve some issues...
&lt;/p&gt;
&lt;h5&gt;1. Join your domain as soon as possible - but pay attention!
&lt;/h5&gt;
&lt;p&gt;
The first step you should do after installation is to join your domain - if you have
one.
&lt;/p&gt;
&lt;p&gt;
But please pay attention if you use Small Business Server mechanisms - or any other
- to deploy software to your clients. I had a configuration which tried to install
IE6 and other&amp;nbsp;tools&amp;nbsp;from the server to the client after joining the network.
There just pops up a question if you really want to execute the setup and being a
"creature of habit" I just clicked "Yes".
&lt;/p&gt;
&lt;p&gt;
This seems to have wrecked my installation, because afterwards Vista decided to start
without a taskbar, explorer and elements on the desktop...&lt;br&gt;
So I installed it a second time...&lt;br&gt;
:-)
&lt;/p&gt;
&lt;h5&gt;2. systemvendor-specific software
&lt;/h5&gt;
&lt;p&gt;
I am using an IBM R50 laptop, which brings up some vendor-specific software like powermanagement
utilities, Network access and so on.
&lt;/p&gt;
&lt;p&gt;
Do yourself a favor and keep a cable for Internet access ready after installation
and do not panic if you have got a kind of incomplete system after a successful installation.
&lt;/p&gt;
&lt;p&gt;
Therefor&amp;nbsp;the second&amp;nbsp;step you should do afterwards is to start the windows
update and download all vendor-specific software the system will offer you. That brought
back power management and WLAN also, but some other tools are still missing (like
the display control to switch to a beamer) and are not allowed to install on Vista.
&lt;/p&gt;
&lt;h5&gt;3. Security and UAC (User account control)
&lt;/h5&gt;
&lt;p&gt;
I bet, that the new feature UAC (&lt;a title="User Account Control" href="http://www.windowsdevcenter.com/pub/a/windows/2006/04/04/uac-in-windows-vista.html" target="_blank"&gt;User
Account Control&lt;/a&gt;) will be a pain in your neck - especially during the first hours
doing all installations you need. Everytime you start a setup you will be faced with
"Do you really want to?", everytime you will be alerted "a program tries to..."...
&lt;/p&gt;
&lt;p&gt;
As described in the article above it really gets annoying and also brings up some
risks like clicking every OK you will face without reading carefully, but if you want
to be secure you can not have everything. That UAC could give you a hint for investigating
for Trojans and others is proofed with this &lt;a href="http://blogs.chron.com/techblog/archives/2006/09/did_windows_vis.html" target="_blank"&gt;blog-entry&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
If you are interested in digging deeper into Windows security, read &lt;a title="Windows Vista Security blog" href="http://blogs.msdn.com/windowsvistasecurity/" target="_blank"&gt;Windows
Vista Security blog&lt;/a&gt;&amp;nbsp;or &lt;a title="UAC blog" href="http://blogs.msdn.com/uac/" target="_blank"&gt;UAC
blog&lt;/a&gt;.
&lt;/p&gt;
&lt;h5&gt;4. Installation of SQL 2005
&lt;/h5&gt;
&lt;p&gt;
I you want to install SQL 2005 on your Vista client you will have to fulfil some prerequisites,
especially enabling the IIS and doing some configuration, as described in &lt;a title="KB article 920201" href="http://support.microsoft.com/default.aspx/kb/920201/en-us" target="_blank"&gt;KB
article 920201&lt;/a&gt;. But even if you do this it is not guaranteed that Reporting Services
will run as described in the comments of &lt;a title="James Kovacs' posting" href="http://www.jameskovacs.com/blog/CommentView.aspx?guid=d032929a-51dd-45dc-b3e0-ac985af54e57#commentstart" target="_blank"&gt;James
Kovacs' posting&lt;/a&gt;.&lt;br&gt;
Further tips and known issues are described in &lt;a title="Microsoft SQL Server 2005 on &amp;quot;Microsoft Windows Server Longhorn&amp;quot; or Microsoft Windows Vista" href="http://www.microsoft.com/sql/howtobuy/windowsvistasupport.mspx" target="_blank"&gt;Microsoft
SQL Server 2005 on "Microsoft Windows Server Longhorn" or Microsoft Windows Vista&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
We will have to wait for the official version of SP2 and see what it brings - I hope
it will work!
&lt;/p&gt;
&lt;h5&gt;5. OWA with IE7 and Vista
&lt;/h5&gt;
&lt;p&gt;
I am using OWA to access my exchange server and I did do this also using IE7&amp;nbsp;and
Windows XP.&lt;br&gt;
Windows Vista seems to have a slightly other IE7, which handles ActiveX-controls -
even the one form Microsoft - a little bit stricter. Using OWA I was able to read
messages, but I could not answer to a message´, because the input frame just displayed
a red X...
&lt;/p&gt;
&lt;p&gt;
There are two KB articles - &lt;a href="http://support.microsoft.com/kb/911829/en-us" target="_blank"&gt;911829&lt;/a&gt;&amp;nbsp;and &lt;a href="http://support.microsoft.com/kb/924334/en-us" target="_blank"&gt;924334&lt;/a&gt;-
and also two downloads which will solve this problem.
&lt;/p&gt;
&lt;h5&gt;6. 3G data card for PCMCIA-Slot
&lt;/h5&gt;
&lt;p&gt;
I am using a &lt;a title="Novatel Merlin&amp;trade; U740 Wireless PC Card" href="http://www.novatelwireless.com/products/merlin/merlin-u740.html" target="_blank"&gt;Novatel
Merlin™ U740 Wireless PC Card&lt;/a&gt;&amp;nbsp;to connect via 3G to the Internet and my German
provider is &lt;a title="Vodafone" href="http://www.vodafone.de/" target="_blank"&gt;Vodafone&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
In Germany it is very common that providers will deliver a specific software with
there own branding to assure that you will have an easy installation and access, the
Vodafone software is called "Dashboard" and the current downloadable version is 7.04.
&lt;/p&gt;
&lt;p&gt;
Due to the Vista restrictions you will not be able to install the software and there&amp;nbsp;you
neither&amp;nbsp;get the drivers nor the software to communicate with your data card.
&lt;/p&gt;
&lt;p&gt;
So I allowed myself to call the business hotline to ask for a new version of the dashboard
to enable the data card using Vista.&lt;br&gt;
The answer was that there is no specific time schedule which is public but that there
will be a good chance that the software will be presented at the CeBit and available
afterwards...&lt;br&gt;
Presented? This software is just a little tool to enable and control the connection
and not the ultimate version of a hype-whatever software suite!&lt;br&gt;
And CeBit? This fair will be in the mid of March! Should I wait about three months
to enable my data card?&lt;br&gt;
Common, I understand that the software has to be tested and certified also and that
this could be time consuming but to be honest... Is Windows Vista really such an unexpected
and uncommon OS??
&lt;/p&gt;
&lt;p&gt;
So I called not only one time but twice, because the first answer was not very satisfying...&lt;br&gt;
The second answer was that there will be a version around end of January....&lt;br&gt;
Ah, there is light at the end of the dark! But having to wait till end of this months
would be also annoying...
&lt;/p&gt;
&lt;p&gt;
So I choosed another solution,&amp;nbsp;why not to&amp;nbsp;use the data card as a kind of
normal dial-up connection??
&lt;/p&gt;
&lt;p&gt;
First you will have to disable the PIN on your SIM-Card, because the dial-up connection
will not be able to ask for the PIN like the dashboard does.&lt;br&gt;
You can use your mobile phone or&amp;nbsp;the dashboard software for that.
&lt;/p&gt;
&lt;p&gt;
After disabling the PIN insert the data card to your PCMCIA-Slot and wait for the
drivers to be installed.
&lt;/p&gt;
&lt;p&gt;
Then you will have to do some manual steps:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Open the Control Panel - Network and Sharing Center 
&lt;li&gt;
Click "Setup a connection or network" in the tasks at the left side. 
&lt;li&gt;
Mark&amp;nbsp;"Connect to the Internet" and click Next 
&lt;li&gt;
"Create a new connection" 
&lt;li&gt;
Choose "Dial-up" 
&lt;li&gt;
Choose the Novatel Wireless Merlin HSDPA Modem 
&lt;li&gt;
enter &lt;b&gt;*99# &lt;/b&gt;as Dial-up phone number 
&lt;li&gt;
leave User name and Password blank 
&lt;li&gt;
enter a describing description into Connection name 
&lt;li&gt;
decide whether to allow other people to use this connection 
&lt;li&gt;
click Connect&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
To make it a little bit more secure you should turn of all options in "Sharing and
Discovery" and as a little comfort hint: you should put a Shortcut&amp;nbsp;on the Desktop
or into the Quick Launch to be able to activate the connection very easily.
&lt;/p&gt;
&lt;p&gt;
This will work, but without the Vodafone dashboard you will not be able to diagnose
you connection speed and control your download rates (a pity if you pay for volume
or time and do not have a flat rate) so be careful! But I think that will be a proper
workaround till the software will be available...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.fits-consulting.de/blog/aggbug.ashx?id=53aeb9d5-cfa0-4928-aa49-0c4773f3d0b0" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;p&gt;
This weblog is sponsored by &lt;a href="http://www.fits-consulting.de"&gt;FITS&lt;/a&gt;. 
&lt;br&gt;
We support &lt;a href="http://www.sqlpass.de"&gt;PASS Germany&lt;/a&gt;!
&lt;/p&gt;</description>
      <comments>http://www.fits-consulting.de/blog/CommentView,guid,53aeb9d5-cfa0-4928-aa49-0c4773f3d0b0.aspx</comments>
      <category>MS;Security;Tools</category>
    </item>
    <item>
      <trackback:ping>http://www.fits-consulting.de/blog/Trackback.aspx?guid=4f42c907-3e39-4283-a4fb-c3e536ce2ceb</trackback:ping>
      <pingback:server>http://www.fits-consulting.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.fits-consulting.de/blog/PermaLink,guid,4f42c907-3e39-4283-a4fb-c3e536ce2ceb.aspx</pingback:target>
      <dc:creator>Markus Fischer</dc:creator>
      <wfw:comment>http://www.fits-consulting.de/blog/CommentView,guid,4f42c907-3e39-4283-a4fb-c3e536ce2ceb.aspx</wfw:comment>
      <wfw:commentRss>http://www.fits-consulting.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=4f42c907-3e39-4283-a4fb-c3e536ce2ceb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.sql-server-performance.com/randy_dyess.asp" target="_blank">Randy
Dyess</a> has published an article called <a href="http://www.sql-server-performance.com/rd_auditing2.asp" target="_blank">"Auditing
Your SQL Server Environment: Part II (Reviewing Role Memberships)"</a></p>
        <p>
The following content is intellectual property of Randy Dyess, the original posting
can be found <a href="http://www.sql-server-performance.com/rd_auditing2.asp" target="_blank">here</a>:
</p>
        <p>
          <font color="#808080">"Roles should be in foremost in your mind when planning the
security of your SQL Server environments. Auditing inherited SQL Server installations
is a relatively easy thing to accomplish, and all DBAs should audit their environment
and create documentation if they have not already done so. Once you can document the
logins assigned to each of your fixed and user-defined roles, you can start to remove
any duplication of permissions which can reduce the time needed to troubleshoot future
permission errors."</font>
        </p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Use
the master database</span>
            <br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">USE</span> master<br />
go<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">IF</span><span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">OBJECT_ID</span>(<span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'dbo.spRoleMembers'</span>) <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">IS</span><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NOT</span><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NULL</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">DROP</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">PROCEDURE</span> dbo.spRoleMembers<br />
GO<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">CREATE</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">PROCEDURE</span> dbo.spRoleMembers<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">AS</span><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">/************************************************************ 
<br />
Creation Date: 04/28/02 Created By: Randy Dyess<br />
Web Site: www.TransactSQL.Com<br />
Email: RandyDyess@TransactSQL.Com<br />
Purpose: Loops through all databases and obtains member<br />
for database roles as well as server role members.<br />
Location: master database<br />
Output Parameters: None<br />
Return Status: None<br />
Called By: None 
<br />
Calls: None<br />
Data Modifications: None<br />
Updates: 
<br />
None 
<br /><br />
************************************************************/</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NOCOUNT</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ON</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Variables</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">DECLARE</span> @lngCounter
INTEGER<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">DECLARE</span> @strDBName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(50)<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">DECLARE</span> @strSQL <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NVARCHAR</span>(4000)<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Temp
table to hold database and user-define role user names</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">CREATE</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">TABLE</span> #tRolemember<br />
(<br />
strServerName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(50) <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">DEFAULT</span><span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">@@SERVERNAME</span><br />
,strDBName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(50) 
<br />
,strRoleName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(50)<br />
,strUserName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(50)<br />
,strUserID <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(100)<br />
)<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Temp
table to hold database names</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">CREATE</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">TABLE</span> #tDBNames<br />
(lngID INTEGER <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">IDENTITY</span>(1,1)<br />
,strDBName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(50)<br />
)<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Create
permanent table</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">IF</span><span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">OBJECT_ID</span> (<span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'dbo.tRolemember'</span>) <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">IS</span><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NULL</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">BEGIN</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">CREATE</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">TABLE</span> dbo.tRolemember<br />
(<br />
strServerName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(50) 
<br />
,strDBName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(50) 
<br />
,strRoleName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(50)<br />
,strUserName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(50)<br />
,strUserID <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(100)<br />
)<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">END</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Obtain
members of each server role</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">INSERT</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">INTO</span> #tRolemember
(strRoleName, strUserName, strUserID)<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">EXEC</span> dbo.sp_helpsrvrolemember<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Obtain
database names</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">INSERT</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">INTO</span> #tDBNames
(strDBName)<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> name <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> master.dbo.<span style="FONT-SIZE: 11px; COLOR: lawngreen; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">sysdatabases</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @lngCounter
= <span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">@@ROWCOUNT</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Loop
through databases to obtain members of database roles and user-defined roles</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHILE</span> @lngCounter
&gt; 0<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">BEGIN</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Get
database name from temp table</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @strDBName
= (<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> strDBName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> #tDBNames <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> lngID
= @lngCounter)<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Obtain
members of each database and user-defined role</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @strSQL
= <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'INSERT
INTO #tRolemember (strRoleName, strUserName, strUserID)<br />
EXEC '</span> + @strDBName + <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'.dbo.sp_helprolemember'</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">EXEC</span><span style="FONT-SIZE: 11px; COLOR: brown; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">sp_executesql</span> @strSQL<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Update
database name in temp table</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">UPDATE</span> #tRolemember<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> strDBName
= @strDBName<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> strDBName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">IS</span><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NULL</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @lngCounter
= @lngCounter - 1<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">END</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Place
data into permanent table</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">INSERT</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">INTO</span> tRolemember<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> trm.* <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> #tRolemember
trm<br /><span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">LEFT</span><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">JOIN</span> tRoleMember
prm<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ON</span> trm.strUserName
= prm.strUserName<br /><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">AND</span> trm.strDBName
= prm.strDBName<br /><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">AND</span> trm.strRoleName
= prm.strRoleName<br /><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">AND</span> trm.strServerName
= prm.strServerName<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> prm.strServerName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">IS</span><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NULL</span><br /><br />
GO<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Test
Stored Procedure</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">EXEC</span> dbo.spRoleMembers<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">PRINT</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'Display
by User'</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> strUserName,
strDBName, strRoleName, strServerName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> tRolemember<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> strUserName
&lt;&gt; <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'dbo'</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ORDER</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">BY</span> strUserName<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">PRINT</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'Display
by Role'</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> strRoleName,
strDBName, strUserName,strServerName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> tRolemember<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> strUserName
&lt;&gt; <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'dbo'</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ORDER</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">BY</span> strRoleName<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">PRINT</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'Display
by Database'</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> strDBName,
strRoleName,strUserName, strServerName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> tRolemember<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> strUserName
&lt;&gt; <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'dbo'</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ORDER</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">BY</span> strDBName</span>
        </p>
        <p>
          <hr width="75%" color="#c0c0c0" size="1" />
        </p>
        <p>
        </p>
        <p>
Randy also has published a script about auditing user's passwords
</p>
        <p>
The following content is intellectual property of Randy Dyess, the original posting
can be found <a href="http://www.database-security.info/Tools/SQLServer/spAuditPasswords.txt" target="_blank">here</a>:
</p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">IF</span>
            <span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">OBJECT_ID</span>(<span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'dbo.spAuditPasswords'</span>) <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">IS</span><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NOT</span><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NULL</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">DROP</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">PROCEDURE</span> dbo.spAuditPasswords<br />
GO<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">CREATE</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">PROCEDURE</span> dbo.spAuditPasswords<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">AS</span><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">/**************************************************************************** 
<br />
Creation Date: 03/22/02 Created By: Randy Dyess<br />
Web Site: www.TransactSQL.Com<br />
Email: RandyDyess@TransactSQL.Com<br />
Purpose: Perform a simple audit of user's passwords<br />
Location: master database<br />
Output Parameters: None<br />
Return Status: None<br />
Called By: None 
<br />
Calls: None<br />
Data Modifications: None<br />
Updates: None 
<br />
Date Author Purpose 
<br />
---------- -------------------------- --------------------------------- 
<br />
****************************************************************************/</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NOCOUNT</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ON</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Variables</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">DECLARE</span> @lngCounter
INTEGER<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">DECLARE</span> @lngCounter1
INTEGER<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">DECLARE</span> @lngLogCount
INTEGER<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">DECLARE</span> @strName <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">VARCHAR</span>(256)<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Create
table to hold SQL logins</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">CREATE</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">TABLE</span> #tLogins<br />
(<br />
numID INTEGER <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">IDENTITY</span>(1,1)<br />
,strLogin <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SYSNAME</span><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NULL</span><br />
,lngPass INTEGER <span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NULL</span><br />
)<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Insert
non ntuser into temp table</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">INSERT</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">INTO</span> #tLogins
(strLogin)<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> name <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> master.dbo.<span style="FONT-SIZE: 11px; COLOR: lawngreen; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">syslogins</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> isntname
= 0<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @lngLogCount
= <span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">@@ROWCOUNT</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Determine
if password is null and user iis SQL Login</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">PRINT</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'The
following logins have blank passwords'</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> name <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">AS</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'Login
Name'</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> master.dbo.<span style="FONT-SIZE: 11px; COLOR: lawngreen; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">syslogins</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> password <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">IS</span><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">NULL</span><br /><span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">AND</span> isntname
= 0<br /><br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Determine
if password and name are the ssame</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @lngCounter
= @lngLogCount<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHILE</span> @lngCounter
&lt;&gt; 0<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">BEGIN</span><br />
    <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @strName
= (<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> strLogin <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> #tLogins <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> numID
= @lngCounter)<br /><br />
    <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">UPDATE</span> #tLogins<br />
    <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> lngPass
= (<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> PWDCOMPARE
(@strName,(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> password <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> master.dbo.<span style="FONT-SIZE: 11px; COLOR: lawngreen; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">syslogins</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> name
= @strName))) 
<br />
    <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> numID
= @lngCounter<br /><br />
    <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @lngCounter
= @lngCounter - 1<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">END</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">PRINT</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'The
following logins have passwords the same as their login name'</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> strLogin <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">AS</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'Login
Name'</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> #tLogins <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> lngPass
= 1<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Reset
column for next password test</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">UPDATE</span> #tLogins<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> lngPass
= 0<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Determine
if password is only one characcter long</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @lngCounter
= @lngLogCount<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHILE</span> @lngCounter
&lt;&gt; 0<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">BEGIN</span><br />
    <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @lngCounter1
= 1<br />
    <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @strName
= (<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> strLogin <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> #tLogins <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> numID
= @lngCounter)<br />
    <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHILE</span> @lngCounter1
&lt; 256<br />
    <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">BEGIN</span><br />
        <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">UPDATE</span> #tLogins<br />
        <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> lngPass
= (<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> PWDCOMPARE
(<span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">CHAR</span>(@lngCounter1),(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> password <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> master.dbo.<span style="FONT-SIZE: 11px; COLOR: lawngreen; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">syslogins</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> name
= @strName))) 
<br />
        <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> numID
= @lngCounter<br />
        <span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">AND</span> lngPass
&lt;&gt; 1<br />
        <br />
        <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @lngCounter1
= @lngCounter1 + 1<br />
    <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">END</span><br /><br />
    <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> @lngCounter
= @lngCounter - 1<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">END</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">PRINT</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'The
following logins have one character passwords'</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> strLogin <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">AS</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'Login
Name'</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> #tLogins <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span> lngPass
= 1<br />
GO<br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Test</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">EXEC</span> dbo.spAuditPasswords</span>
        </p>
        <p>
          <hr width="75%" color="#c0c0c0" size="1" />
        </p>
        <p>
        </p>
        <p>
And last but not least Bradley Morris has published an article about <a href="http://www.sql-server-performance.com/bm_object_permission_scripts.asp">"How
to Script User and Role Object Permissions in SQL Server"</a></p>
        <img width="0" height="0" src="http://www.fits-consulting.de/blog/aggbug.ashx?id=4f42c907-3e39-4283-a4fb-c3e536ce2ceb" />
        <br />
        <hr />
        <p>
This weblog is sponsored by <a href="http://www.fits-consulting.de">FITS</a>. 
<br />
We support <a href="http://www.sqlpass.de">PASS Germany</a>!
</p>
      </body>
      <title>some SQL Server scripts regarding security </title>
      <guid isPermaLink="false">http://www.fits-consulting.de/blog/PermaLink,guid,4f42c907-3e39-4283-a4fb-c3e536ce2ceb.aspx</guid>
      <link>http://www.fits-consulting.de/blog/PermaLink,guid,4f42c907-3e39-4283-a4fb-c3e536ce2ceb.aspx</link>
      <pubDate>Fri, 25 Aug 2006 13:19:02 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.sql-server-performance.com/randy_dyess.asp" target=_blank&gt;Randy
Dyess&lt;/a&gt; has published an article called &lt;a href="http://www.sql-server-performance.com/rd_auditing2.asp" target=_blank&gt;"Auditing
Your SQL Server Environment: Part II (Reviewing Role Memberships)"&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The following content is intellectual property of Randy Dyess, the original posting
can be found &lt;a href="http://www.sql-server-performance.com/rd_auditing2.asp" target=_blank&gt;here&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#808080&gt;"Roles should be in foremost in your mind when planning the security
of your SQL Server environments. Auditing inherited SQL Server installations is a
relatively easy thing to accomplish, and all DBAs should audit their environment and
create documentation if they have not already done so. Once you can document the logins
assigned to each of your fixed and user-defined roles, you can start to remove any
duplication of permissions which can reduce the time needed to troubleshoot future
permission errors."&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Use
the master database&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;USE&lt;/span&gt; master&lt;br&gt;
go&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;IF&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;OBJECT_ID&lt;/span&gt;(&lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'dbo.spRoleMembers'&lt;/span&gt;) &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;IS&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NOT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NULL&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;DROP&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;PROCEDURE&lt;/span&gt; dbo.spRoleMembers&lt;br&gt;
GO&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;CREATE&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;PROCEDURE&lt;/span&gt; dbo.spRoleMembers&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;AS&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;/************************************************************ 
&lt;br&gt;
Creation Date: 04/28/02 Created By: Randy Dyess&lt;br&gt;
Web Site: www.TransactSQL.Com&lt;br&gt;
Email: RandyDyess@TransactSQL.Com&lt;br&gt;
Purpose: Loops through all databases and obtains member&lt;br&gt;
for database roles as well as server role members.&lt;br&gt;
Location: master database&lt;br&gt;
Output Parameters: None&lt;br&gt;
Return Status: None&lt;br&gt;
Called By: None 
&lt;br&gt;
Calls: None&lt;br&gt;
Data Modifications: None&lt;br&gt;
Updates: 
&lt;br&gt;
None 
&lt;br&gt;
&lt;br&gt;
************************************************************/&lt;/span&gt; 
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NOCOUNT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;ON&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Variables&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;DECLARE&lt;/span&gt; @lngCounter
INTEGER&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;DECLARE&lt;/span&gt; @strDBName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(50)&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;DECLARE&lt;/span&gt; @strSQL &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NVARCHAR&lt;/span&gt;(4000)&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Temp
table to hold database and user-define role user names&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;CREATE&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;TABLE&lt;/span&gt; #tRolemember&lt;br&gt;
(&lt;br&gt;
strServerName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(50) &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;DEFAULT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;@@SERVERNAME&lt;/span&gt;
&lt;br&gt;
,strDBName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(50) 
&lt;br&gt;
,strRoleName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(50)&lt;br&gt;
,strUserName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(50)&lt;br&gt;
,strUserID &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(100)&lt;br&gt;
)&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Temp
table to hold database names&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;CREATE&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;TABLE&lt;/span&gt; #tDBNames&lt;br&gt;
(lngID INTEGER &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;IDENTITY&lt;/span&gt;(1,1)&lt;br&gt;
,strDBName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(50)&lt;br&gt;
)&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Create
permanent table&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;IF&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;OBJECT_ID&lt;/span&gt; (&lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'dbo.tRolemember'&lt;/span&gt;) &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;IS&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NULL&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;BEGIN&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;CREATE&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;TABLE&lt;/span&gt; dbo.tRolemember&lt;br&gt;
(&lt;br&gt;
strServerName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(50) 
&lt;br&gt;
,strDBName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(50) 
&lt;br&gt;
,strRoleName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(50)&lt;br&gt;
,strUserName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(50)&lt;br&gt;
,strUserID &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(100)&lt;br&gt;
)&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;END&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Obtain
members of each server role&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;INSERT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;INTO&lt;/span&gt; #tRolemember
(strRoleName, strUserName, strUserID)&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;EXEC&lt;/span&gt; dbo.sp_helpsrvrolemember&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Obtain
database names&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;INSERT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;INTO&lt;/span&gt; #tDBNames
(strDBName)&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; name &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; master.dbo.&lt;span style="FONT-SIZE: 11px; COLOR: lawngreen; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;sysdatabases&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @lngCounter
= &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;@@ROWCOUNT&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Loop
through databases to obtain members of database roles and user-defined roles&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHILE&lt;/span&gt; @lngCounter
&amp;gt; 0&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;BEGIN&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Get
database name from temp table&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @strDBName
= (&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; strDBName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; #tDBNames &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; lngID
= @lngCounter)&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Obtain
members of each database and user-defined role&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @strSQL
= &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'INSERT
INTO #tRolemember (strRoleName, strUserName, strUserID)&lt;br&gt;
EXEC '&lt;/span&gt; + @strDBName + &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'.dbo.sp_helprolemember'&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;EXEC&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: brown; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;sp_executesql&lt;/span&gt; @strSQL&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Update
database name in temp table&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;UPDATE&lt;/span&gt; #tRolemember&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; strDBName
= @strDBName&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; strDBName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;IS&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NULL&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @lngCounter
= @lngCounter - 1&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;END&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Place
data into permanent table&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;INSERT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;INTO&lt;/span&gt; tRolemember&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; trm.* &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; #tRolemember
trm&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;LEFT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;JOIN&lt;/span&gt; tRoleMember
prm&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;ON&lt;/span&gt; trm.strUserName
= prm.strUserName&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;AND&lt;/span&gt; trm.strDBName
= prm.strDBName&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;AND&lt;/span&gt; trm.strRoleName
= prm.strRoleName&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;AND&lt;/span&gt; trm.strServerName
= prm.strServerName&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; prm.strServerName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;IS&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NULL&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
GO&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Test
Stored Procedure&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;EXEC&lt;/span&gt; dbo.spRoleMembers&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;PRINT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'Display
by User'&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; strUserName,
strDBName, strRoleName, strServerName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; tRolemember&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; strUserName
&amp;lt;&amp;gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'dbo'&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;ORDER&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;BY&lt;/span&gt; strUserName&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;PRINT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'Display
by Role'&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; strRoleName,
strDBName, strUserName,strServerName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; tRolemember&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; strUserName
&amp;lt;&amp;gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'dbo'&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;ORDER&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;BY&lt;/span&gt; strRoleName&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;PRINT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'Display
by Database'&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; strDBName,
strRoleName,strUserName, strServerName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; tRolemember&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; strUserName
&amp;lt;&amp;gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'dbo'&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;ORDER&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;BY&lt;/span&gt; strDBName&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;hr width="75%" color=#c0c0c0 size=1&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Randy also has published a script about auditing user's passwords
&lt;/p&gt;
&lt;p&gt;
The following content is intellectual property of Randy Dyess, the original posting
can be found &lt;a href="http://www.database-security.info/Tools/SQLServer/spAuditPasswords.txt" target=_blank&gt;here&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;IF&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;OBJECT_ID&lt;/span&gt;(&lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'dbo.spAuditPasswords'&lt;/span&gt;) &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;IS&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NOT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NULL&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;DROP&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;PROCEDURE&lt;/span&gt; dbo.spAuditPasswords&lt;br&gt;
GO&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;CREATE&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;PROCEDURE&lt;/span&gt; dbo.spAuditPasswords&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;AS&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;/**************************************************************************** 
&lt;br&gt;
Creation Date: 03/22/02 Created By: Randy Dyess&lt;br&gt;
Web Site: www.TransactSQL.Com&lt;br&gt;
Email: RandyDyess@TransactSQL.Com&lt;br&gt;
Purpose: Perform a simple audit of user's passwords&lt;br&gt;
Location: master database&lt;br&gt;
Output Parameters: None&lt;br&gt;
Return Status: None&lt;br&gt;
Called By: None 
&lt;br&gt;
Calls: None&lt;br&gt;
Data Modifications: None&lt;br&gt;
Updates: None 
&lt;br&gt;
Date Author Purpose 
&lt;br&gt;
---------- -------------------------- --------------------------------- 
&lt;br&gt;
****************************************************************************/&lt;/span&gt; 
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NOCOUNT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;ON&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Variables&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;DECLARE&lt;/span&gt; @lngCounter
INTEGER&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;DECLARE&lt;/span&gt; @lngCounter1
INTEGER&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;DECLARE&lt;/span&gt; @lngLogCount
INTEGER&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;DECLARE&lt;/span&gt; @strName &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;VARCHAR&lt;/span&gt;(256)&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Create
table to hold SQL logins&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;CREATE&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;TABLE&lt;/span&gt; #tLogins&lt;br&gt;
(&lt;br&gt;
numID INTEGER &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;IDENTITY&lt;/span&gt;(1,1)&lt;br&gt;
,strLogin &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SYSNAME&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NULL&lt;/span&gt;
&lt;br&gt;
,lngPass INTEGER &lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NULL&lt;/span&gt;
&lt;br&gt;
)&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Insert
non ntuser into temp table&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;INSERT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;INTO&lt;/span&gt; #tLogins
(strLogin)&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; name &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; master.dbo.&lt;span style="FONT-SIZE: 11px; COLOR: lawngreen; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;syslogins&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; isntname
= 0&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @lngLogCount
= &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;@@ROWCOUNT&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Determine
if password is null and user iis SQL Login&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;PRINT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'The
following logins have blank passwords'&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; name &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;AS&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'Login
Name'&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; master.dbo.&lt;span style="FONT-SIZE: 11px; COLOR: lawngreen; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;syslogins&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; password &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;IS&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;NULL&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;AND&lt;/span&gt; isntname
= 0&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Determine
if password and name are the ssame&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @lngCounter
= @lngLogCount&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHILE&lt;/span&gt; @lngCounter
&amp;lt;&amp;gt; 0&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;BEGIN&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @strName
= (&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; strLogin &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; #tLogins &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; numID
= @lngCounter)&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;UPDATE&lt;/span&gt; #tLogins&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; lngPass
= (&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; PWDCOMPARE
(@strName,(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; password &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; master.dbo.&lt;span style="FONT-SIZE: 11px; COLOR: lawngreen; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;syslogins&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; name
= @strName))) 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; numID
= @lngCounter&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @lngCounter
= @lngCounter - 1&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;END&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;PRINT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'The
following logins have passwords the same as their login name'&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; strLogin &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;AS&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'Login
Name'&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; #tLogins &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; lngPass
= 1&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Reset
column for next password test&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;UPDATE&lt;/span&gt; #tLogins&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; lngPass
= 0&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Determine
if password is only one characcter long&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @lngCounter
= @lngLogCount&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHILE&lt;/span&gt; @lngCounter
&amp;lt;&amp;gt; 0&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;BEGIN&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @lngCounter1
= 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @strName
= (&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; strLogin &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; #tLogins &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; numID
= @lngCounter)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHILE&lt;/span&gt; @lngCounter1
&amp;lt; 256&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;BEGIN&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;UPDATE&lt;/span&gt; #tLogins&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; lngPass
= (&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; PWDCOMPARE
(&lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;CHAR&lt;/span&gt;(@lngCounter1),(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; password &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; master.dbo.&lt;span style="FONT-SIZE: 11px; COLOR: lawngreen; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;syslogins&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; name
= @strName))) 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; numID
= @lngCounter&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: silver; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;AND&lt;/span&gt; lngPass
&amp;lt;&amp;gt; 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @lngCounter1
= @lngCounter1 + 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;END&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; @lngCounter
= @lngCounter - 1&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;END&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;PRINT&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'The
following logins have one character passwords'&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; strLogin &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;AS&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'Login
Name'&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; #tLogins &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; lngPass
= 1&lt;br&gt;
GO&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Test&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;EXEC&lt;/span&gt; dbo.spAuditPasswords&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;hr width="75%" color=#c0c0c0 size=1&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
And last but not least Bradley Morris has published an article about &lt;a href="http://www.sql-server-performance.com/bm_object_permission_scripts.asp"&gt;"How
to Script User and Role Object Permissions in SQL Server"&lt;/a&gt; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.fits-consulting.de/blog/aggbug.ashx?id=4f42c907-3e39-4283-a4fb-c3e536ce2ceb" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;p&gt;
This weblog is sponsored by &lt;a href="http://www.fits-consulting.de"&gt;FITS&lt;/a&gt;. 
&lt;br&gt;
We support &lt;a href="http://www.sqlpass.de"&gt;PASS Germany&lt;/a&gt;!
&lt;/p&gt;</description>
      <comments>http://www.fits-consulting.de/blog/CommentView,guid,4f42c907-3e39-4283-a4fb-c3e536ce2ceb.aspx</comments>
      <category>Development/T-SQL;MS SQL Server;MS SQL Server/RDBMS;Security</category>
    </item>
    <item>
      <trackback:ping>http://www.fits-consulting.de/blog/Trackback.aspx?guid=9466d002-074f-4d9d-91c3-55a7b2a70a8c</trackback:ping>
      <pingback:server>http://www.fits-consulting.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.fits-consulting.de/blog/PermaLink,guid,9466d002-074f-4d9d-91c3-55a7b2a70a8c.aspx</pingback:target>
      <dc:creator>Markus Fischer</dc:creator>
      <wfw:comment>http://www.fits-consulting.de/blog/CommentView,guid,9466d002-074f-4d9d-91c3-55a7b2a70a8c.aspx</wfw:comment>
      <wfw:commentRss>http://www.fits-consulting.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9466d002-074f-4d9d-91c3-55a7b2a70a8c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Definition from the <a href="http://download.microsoft.com/download/0/7/9/07966841-6a3c-4a71-aef4-09d2f216d81c/Product_Guide.doc" target="_blank">SQL
Server 2005 Product Guide</a>:
</p>
        <p>
          <em>"Analysis Management Objects (AMO) allows client applications to access the range
of administrative commands and capabilities that are available to Analysis Services
by using an object library that can provide object-level validation capabilities.
This is an alternative to manually generating both the DDL scripts for Analysis commands
and the often-lengthy contents of the ASSL ObjectDefinition element. Applications
that use AMO can either connect and work directly with objects on an Analysis Services
instance, or they can create such objects without an existing connection and persist
the metadata for later deployment. AMO also “wraps” Analysis Services Scripting Language
(ASSL) commands and elements."</em>
        </p>
        <p>
Microsoft SQL Server 2005 Management Objects Collection from the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=DF0BA5AA-B4BD-4705-AA0A-B477BA72A9CB&amp;displaylang=en" target="_blank">Feature
Pack for Microsoft SQL Server 2005 - April 2006</a></p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/ms345089.aspx" target="_blank">Introducing
AMO Concepts</a>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/ms160930.aspx" target="_blank">Readme
for AMOBrowser Sample </a>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/ms345094.aspx" target="_blank">AMO
Security Classes</a>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/ms345081.aspx" target="_blank">Programming
AMO Security Objects</a>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/ms174578.aspx" target="_blank">Analysis
Services Concepts and Objects</a>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/ms174786.aspx" target="_blank">Permissions
and Access Rights (SSAS)</a>
        </p>
        <img width="0" height="0" src="http://www.fits-consulting.de/blog/aggbug.ashx?id=9466d002-074f-4d9d-91c3-55a7b2a70a8c" />
        <br />
        <hr />
        <p>
This weblog is sponsored by <a href="http://www.fits-consulting.de">FITS</a>. 
<br />
We support <a href="http://www.sqlpass.de">PASS Germany</a>!
</p>
      </body>
      <title>AMO - a little introduction</title>
      <guid isPermaLink="false">http://www.fits-consulting.de/blog/PermaLink,guid,9466d002-074f-4d9d-91c3-55a7b2a70a8c.aspx</guid>
      <link>http://www.fits-consulting.de/blog/PermaLink,guid,9466d002-074f-4d9d-91c3-55a7b2a70a8c.aspx</link>
      <pubDate>Fri, 11 Aug 2006 11:49:21 GMT</pubDate>
      <description>&lt;p&gt;
Definition from the &lt;a href="http://download.microsoft.com/download/0/7/9/07966841-6a3c-4a71-aef4-09d2f216d81c/Product_Guide.doc" target=_blank&gt;SQL
Server 2005 Product Guide&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"Analysis Management Objects (AMO) allows client applications to access the range
of administrative commands and capabilities that are available to Analysis Services
by using an object library that can provide object-level validation capabilities.
This is an alternative to manually generating both the DDL scripts for Analysis commands
and the often-lengthy contents of the ASSL ObjectDefinition element. Applications
that use AMO can either connect and work directly with objects on an Analysis Services
instance, or they can create such objects without an existing connection and persist
the metadata for later deployment. AMO also “wraps” Analysis Services Scripting Language
(ASSL) commands and elements."&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Microsoft SQL Server 2005 Management Objects Collection from the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=DF0BA5AA-B4BD-4705-AA0A-B477BA72A9CB&amp;amp;displaylang=en" target=_blank&gt;Feature
Pack for Microsoft SQL Server 2005 - April 2006&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms345089.aspx" target=_blank&gt;Introducing
AMO Concepts&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms160930.aspx" target=_blank&gt;Readme
for AMOBrowser Sample &lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms345094.aspx" target=_blank&gt;AMO
Security Classes&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms345081.aspx" target=_blank&gt;Programming
AMO Security Objects&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms174578.aspx" target=_blank&gt;Analysis
Services Concepts and Objects&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms174786.aspx" target=_blank&gt;Permissions
and Access Rights (SSAS)&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.fits-consulting.de/blog/aggbug.ashx?id=9466d002-074f-4d9d-91c3-55a7b2a70a8c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;p&gt;
This weblog is sponsored by &lt;a href="http://www.fits-consulting.de"&gt;FITS&lt;/a&gt;. 
&lt;br&gt;
We support &lt;a href="http://www.sqlpass.de"&gt;PASS Germany&lt;/a&gt;!
&lt;/p&gt;</description>
      <comments>http://www.fits-consulting.de/blog/CommentView,guid,9466d002-074f-4d9d-91c3-55a7b2a70a8c.aspx</comments>
      <category>Development;Development/.Net;MS SQL Server;MS SQL Server/AS - SSAS;Security</category>
    </item>
    <item>
      <trackback:ping>http://www.fits-consulting.de/blog/Trackback.aspx?guid=7298bd89-91d0-4e1b-ba99-984264b8746a</trackback:ping>
      <pingback:server>http://www.fits-consulting.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.fits-consulting.de/blog/PermaLink,guid,7298bd89-91d0-4e1b-ba99-984264b8746a.aspx</pingback:target>
      <dc:creator>Markus Fischer</dc:creator>
      <wfw:comment>http://www.fits-consulting.de/blog/CommentView,guid,7298bd89-91d0-4e1b-ba99-984264b8746a.aspx</wfw:comment>
      <wfw:commentRss>http://www.fits-consulting.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=7298bd89-91d0-4e1b-ba99-984264b8746a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.microsoft.com/athome/security/privacy/password.mspx" target="_blank">Strong
passwords: How to create and use them</a>
        </p>
        <p>
          <a href="http://www.microsoft.com/athome/security/privacy/password_checker.mspx" target="_blank">Password
checker</a>
        </p>
        <img width="0" height="0" src="http://www.fits-consulting.de/blog/aggbug.ashx?id=7298bd89-91d0-4e1b-ba99-984264b8746a" />
        <br />
        <hr />
        <p>
This weblog is sponsored by <a href="http://www.fits-consulting.de">FITS</a>. 
<br />
We support <a href="http://www.sqlpass.de">PASS Germany</a>!
</p>
      </body>
      <title>passwords...</title>
      <guid isPermaLink="false">http://www.fits-consulting.de/blog/PermaLink,guid,7298bd89-91d0-4e1b-ba99-984264b8746a.aspx</guid>
      <link>http://www.fits-consulting.de/blog/PermaLink,guid,7298bd89-91d0-4e1b-ba99-984264b8746a.aspx</link>
      <pubDate>Mon, 06 Mar 2006 05:32:41 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.microsoft.com/athome/security/privacy/password.mspx" target=_blank&gt;Strong
passwords: How to create and use them&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/athome/security/privacy/password_checker.mspx" target=_blank&gt;Password
checker&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.fits-consulting.de/blog/aggbug.ashx?id=7298bd89-91d0-4e1b-ba99-984264b8746a" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;p&gt;
This weblog is sponsored by &lt;a href="http://www.fits-consulting.de"&gt;FITS&lt;/a&gt;. 
&lt;br&gt;
We support &lt;a href="http://www.sqlpass.de"&gt;PASS Germany&lt;/a&gt;!
&lt;/p&gt;</description>
      <comments>http://www.fits-consulting.de/blog/CommentView,guid,7298bd89-91d0-4e1b-ba99-984264b8746a.aspx</comments>
      <category>Security</category>
    </item>
    <item>
      <trackback:ping>http://www.fits-consulting.de/blog/Trackback.aspx?guid=b6a11798-35fd-4387-b027-247ddb96e5ab</trackback:ping>
      <pingback:server>http://www.fits-consulting.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.fits-consulting.de/blog/PermaLink,guid,b6a11798-35fd-4387-b027-247ddb96e5ab.aspx</pingback:target>
      <dc:creator>Markus Fischer</dc:creator>
      <wfw:comment>http://www.fits-consulting.de/blog/CommentView,guid,b6a11798-35fd-4387-b027-247ddb96e5ab.aspx</wfw:comment>
      <wfw:commentRss>http://www.fits-consulting.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b6a11798-35fd-4387-b027-247ddb96e5ab</wfw:commentRss>
      <title>TechNet article: Applying the Principle of Least Privilege to User Accounts on Windows XP</title>
      <guid isPermaLink="false">http://www.fits-consulting.de/blog/PermaLink,guid,b6a11798-35fd-4387-b027-247ddb96e5ab.aspx</guid>
      <link>http://www.fits-consulting.de/blog/PermaLink,guid,b6a11798-35fd-4387-b027-247ddb96e5ab.aspx</link>
      <pubDate>Mon, 06 Mar 2006 02:43:44 GMT</pubDate>
      <description>The article Applying the Principle of Least Privilege to User Accounts on Windows XP brings up some interesting thoughts about limited user rights&lt;img width="0" height="0" src="http://www.fits-consulting.de/blog/aggbug.ashx?id=b6a11798-35fd-4387-b027-247ddb96e5ab"/&gt;&lt;br/&gt;&lt;hr/&gt;&lt;p&gt;This weblog is sponsored by &lt;a href="http://www.fits-consulting.de"&gt;FITS&lt;/a&gt;. &lt;br&gt;
We support &lt;a href="http://www.sqlpass.de"&gt;PASS Germany&lt;/a&gt;!&lt;/p&gt;</description>
      <comments>http://www.fits-consulting.de/blog/CommentView,guid,b6a11798-35fd-4387-b027-247ddb96e5ab.aspx</comments>
      <category>MS;Security</category>
    </item>
  </channel>
</rss>