Quantcast
Channel: SQL Protocols
Viewing all 32 articles
Browse latest View live

Connection from a Windows Service could be blocked by firewall even if firewall is disabled

$
0
0

Recently, I worked on a customer issue. The customer encountered an "error: 26 - Error Locating Server/Instance Specified" error  although he has applied/verified every steps I posted in the blog:http://www.bing.com/search?q=error+26+blog+protocol&form=QBRE&qs=n

After some investigation, we found that: Windows Firewall is disabled on both server and client machine. Running Portqry from a command window also show that correct information was returned by SQL Browser and the UDP packet is received by the client machine. However, the application (specifically, SQL data access driver layer, e.g. SqlClient, SNAC)  still could not finish the SQL Server configuration discovery process. The strange part is that everything is fine if the app runs as a standalone app. If it runs as a service, we see the error 26. 

Netmon trace shows that no request UDP packet was sent out of the box. The packet must be lost somewhere. Meanwhile, we found Windows Firewall Service  (MpsSvc) is still running although we have disabled Firewall in "Windows Firewall with Advanced Security" configuration tool (run wf.msc  from command window). We tried to disable the Firewall service and the issue disappeared. So, obviously, the outgoing UDP packet is blocked by firewall. We engaged with Windows firewall team and found the root cause.

What happened is that since Windows Vista, Windows enhanced security practice for service, which is called Windows Service Hardening (WSH). A service developer can install WSH firewall rule for a specific service. WSH firewall rule has higher priority than regular firewall rules and it would take effect even if firewall has been disabled through wf.msc. In addition, you cannot turn on/off WSH firewall through wf.msc. You can only configure it through programming as of now (or manually edit some registry).

For the customer's case, he has a WSH firewall rule which block all outgoing UDP packets. So the solution is to put exception so that outgoing UDP packet targeting remote UDP port 1434 won't be dropped. Another thing worth mentioning is that WSH firewall will block packet even if the target is local machine. (Usually, Windows firewall never blocks local traffic.)

For further information about WSH, please read:
http://www.bing.com/search?q=network+restrictions+service+hardening&form=QBRE&qs=n

Also, please check the following link on about how to add a WSH firewall rule to allow outgoing connections (to SQL) for your services.
http://msdn.microsoft.com/en-us/library/bb736280(VS.85).aspx

 

Xinwei Hong, SQL Server Protocols
Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights


We would like to hear your opinion...

$
0
0

Dear SQL Server developers and users:

 

It is this time of the year when we, in the SQL Connectivity product team, take a step back, review the priorities and goals for the long term and identify areas that will benefit from investments.

 

We view you and your organization as a key stakeholder in this process and would like to gather your inputs in this survey, which should take no more than 5-10 minutes and a few other surveys that we will conduct in the next few months. The feedback you provide is very valuable and be rest assured that each and every response will be read and will provide the background for some of the key decisions that we will make that will benefit our user community - developers, DBAs, and all those who use SQL Server or are looking for ways to expand the scope of the power of SQL Server within your organizations.

 

This survey will be open for your submissions until October 21, 2009 and can be found here. 

 

Thanks

 

Zlatko Michailov

Program Manager, SQL Server Protocols

Microsoft Corp.

Selectively using secure connection to SQL Server

$
0
0

Secure connection to SQL Server can be enforced by different ways, e.g. forcing encryption by using “ForceEncryption” property under the Network Configuration in the server. But this setting will force all clients to use encryption and any client that is not able to use an encrypted connection will fail.

If you need to connect to SQL Server selectively here is how to achieve this:

You can take advantage of the two client settings, “Force Protocol Encryption” and “Trust Server Certificate” and two connection string parameters, “Encrypt” and “Trust Server Certificate”. The table below describes different combinations of these flags and the corresponding behavior.

 

Force Protocol Encryption client setting

Trust Server Certificate client setting

Connection string/connection attribute Encrypt/Use Encryption for Data

Connection string/connection attribute Trust Server Certificate

Result

1.

No

N/A

No (default)

Ignored

No encryption occurs. 

2.

No

N/A

Yes

No (default)

Encryption occurs only if there is a verifiable server certificate, otherwise the connection attempt fails. 

3.

No

N/A

Yes

Yes

Encryption always occurs; certificate is not validated by the client.

4.

Yes

No

Ignored

Ignored

Encryption occurs only if there is a verifiable server certificate, otherwise the connection attempt fails.

5.

Yes

Yes

No (default)

Ignored

Encryption always occurs, but certificate is not validated by the client.

6.

Yes

Yes

Yes

No (default)

Encryption occurs only if there is a verifiable server certificate, otherwise the connection attempt fails.

7.

Yes

Yes

Yes

Yes

Encryption always occurs, but certificate is not validated by the client.

 

If you are not using a server certificate you can go for #5, though #4 with Server certificate is recommended to prevent Man-In-Middle type network attacks. Alternatively you can also use connection string parameters, depending on whether you are using verifiable Server Certificate or self signed server certificate chose #2 or #3. The last two options use both client settings and connection string parameters.

The above connection string values are for OLEDB, for ODBC the connection string values are “true”/”false” instead of “yes”/”no”. For more info please refer to http://msdn.microsoft.com/en-us/library/ms130822%28SQL.90%29.aspx

 

If you still get error messages like “SSL Security error” and you are using a verifiable server certificate you need to follow the link below to export the server certificate and import it back in the client.

http://support.microsoft.com/kb/316898 (follow the steps for "Enable encryption for a specific client")

 

Bhaskar Bhattacharyya, SQL Server Protocols
Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights

SQL Server Native Client survey

$
0
0

Dear SQL Server developers and users:

Our sister team, the SQL Server Native Client (SNAC), has a survey open to ask for your feedback as they take a step back to review the priorities and goals for the long term and identify areas that will benefit from investments.

As a whole, we view YOU and your organization as a key stakeholder in this process and would like to gather your inputs in this survey, which should take no more than 5 - 10 minutes. The feedback you provide is very valuable and be rest assured that each and every response will be read and will provide the background for some of the key decisions that we will make that will benefit our SQL Server database application developer community.

 

This survey will be open for your submissions until January 31, 2010 and can be found here.

 

SQL Server Protocols Team.

SQL Server "Login Failure" troubleshooter

$
0
0

Our colleagues over in the SQL Server Security team have developed an open tool for troubleshooting "Login Failure" errors. If you're having an issue with "Login Failure" errors and can't resolve it from the other SQL Protocols blog articles here, check out their blog post and give their tool a try: http://blogs.msdn.com/sqlsecurity/archive/2010/03/29/sql-server-authentication-troubleshooter.aspx

 

Dan Benediktson
SQL Server Protocols

Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights

TDS traceflags in SQL Server

$
0
0

Microsoft SQL Server has a traceflag framework through which users can set specific server characteristics or to switch on/off a particular behavior. For details about how to use traceflags, please refer to http://msdn.microsoft.com/en-us/library/ms188396.aspx

In this blog, I will introduce two useful traceflags related to TDS, -T4052/-T4055.-T4052 can be used to print the TDS packet sent to client (i.e. output) to console.-T4055 can be used to print the TDS packet received (i.e. input) to console.Both traceflag are startup only, meaning it can only be turned on during server startup. With these two traceflags, you can see everything that flows in and out of SQL Server. The TDS protocol is published at http://msdn.microsoft.com/en-us/library/dd304523(PROT.13).aspx

In order to see things printed to console, users would need to start up SQL Server from a command window with a -c argument. However, this is not what customer usually does. SQL Server provides another  traceflag -T3605 which can be used to print console data to SQL Server errorlog file.

You can search master.mdf HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server (remove Wow6432Node if 64-bit instance) to find the location for configuring startup parameters in SQL Server. The location is under:

HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\<InstanceID>\MSSQLServer\Parameters

Add three string values under the key:

SQLArg3  --> -T4052
SQLArg4  --> -T4055
SQLArg5  --> -T3605

The number after SQLArg does not have to be 3/4/5. As long as it's unique, it's OK. Remember to update <InstanceID> with the instance ID of your own instance.

Now, restart your SQL Server, you will see all TDS data in SQL Server errorlog.

There is another way to observe data input/output of SQL Server. Customer can use Netmon parser(http://www.bing.com/search?q=microsoft+netmon+parser&form=QBRE&qs=n&sk=) to see TDS data. The benefit of TDS netmon parser is it can break down the structure of TDS packets. But, if the data channel is encrypted, Netmon parser won't help. At this time, the approach introduced here can be used. Another advantage of this approach is that it can be used to monitor local connection data easily, irrelevent to underlying protocols(TCP/NP/LPC,etc).

 

Xinwei Hong, SQL Server Protocols
Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights

CurCmd in TDS DONE token

$
0
0

Several customers approached us asking what are the possible values for CurCmd in TDS DONE token. The TDS DONE token is defined at http://msdn.microsoft.com/en-us/library/dd340421(PROT.13).aspx. Similar rules apply to DONEPROC and DONEINPROC.

In the TDS protocol, we have:

CurCmd

The token of the current command. The token value is provided and controlled by the application layer, which utilizes TDS. The TDS layer does not evaluate the value.

As it says, we don’t put the possible value in the TDS specification because TDS layer does not control nor validate the values. It’s purely an upper (in our case, SQL Server Database Engine) thing. None of Microsoft database client drivers expose the CurCmd value to application layer.

However, apparently some customers want to know more about the values when they monitor and read TDS raw data. Actually, in the TDS netmon parser published with the latest Microsoft Network Monitor, we have a table which contains values up to SQL Server 2008. You can find the TDS parser file at C:\ProgramData\Microsoft\Network Monitor 3\NPL\Microsoft Parsers\Windows\TDS.NPL.

For reference, I’m listing the values here. To emphasize once again, TDS layer does not control the values and we don’t necessarily know the meaning of command to which the CurCmd is mapping. Please try your best to understand the meaning, some are straightforward. Several missing values are deprecated ones. SQL Server Database Engine could add new value to CurCmd anytime when new feature is added and new CurCmd value is needed.

Table CurCmdType(value)

{

                switch( value )

                {

                                case 0x03: "COLDEF";

                                case 0x05: "CNST";

                                case 0x08: "NOP";

                                case 0x09: "AOPCNTB";

                                case 0x0a: "AOPCNTBU";

                                case 0x0b: "ISNOT";

                                case 0x0d: "EQ_ANSI";

                                case 0x1a: "REFERENCES";

                                case 0x1b: "SIG_HANDLER";

                                case 0x1c: "TM_REQUEST";

                                case 0x1d: "VARCHEQ";

                                case 0x1e: "VARCHNE";

                                case 0x1f: "CKPT_SLEEP";

                                case 0x20: "OPENCURSOR";

                                case 0x21: "FETCHCURSOR";

                                case 0x23: "LOCK_MONITOR";

                                case 0x24: "DB_MIRROR";

                                case 0x26: "DB_STARTUP";

                                case 0x28: "VAR";

                                case 0x29: "LOADTABLE";

                                case 0x2a: "COLFMTOLD";

                                case 0x2b: "CLOSECURSOR";

                                case 0x2c: "DEALLOCCURSOR";

                                case 0x2d: "LOG_WRITER";

                                case 0x2e: "CNST_CREATE";

                                case 0x30: "AOPSTDEV";

                                case 0x31: "AOPSTDEVP";

                                case 0x32: "AOPVAR";

                                case 0x33: "AOPVARP";

                                case 0x34: "TASK_MGR";

                                case 0x39: "DUMPTABLE";

                                case 0x3b: "GHOSTCLEANUP";

                                case 0x3e: "AUTOSHRINK";

                                case 0x3f: "AUTOBPL";

                                case 0x41: "MINUS";

                                case 0x42: "NOT";

                                case 0x43: "CNVTI1";

                                case 0x44: "CNVTI2";

                                case 0x45: "CNVTI4";

                                case 0x46: "BUILTIN";

                                case 0x47: "CNVTF8";

                                case 0x48: "CNVTVBINARY";

                                case 0x49: "CNVTBINARY";

                                case 0x4a: "AOPONCEU";

                                case 0x4b: "AOPCNT";

                                case 0x4c: "AOPCNTU";

                                case 0x4d: "AOPSUM";

                                case 0x4e: "AOPSUMU";

                                case 0x4f: "AOPAVG";

                                case 0x50: "AOPAVGU";

                                case 0x51: "AOPMIN";

                                case 0x52: "AOPMAX";

                                case 0x53: "AOPANY";

                                case 0x54: "AOPONCE";

                                case 0x55: "AOPASSIGN";

                                case 0x56: "CNVTMONEY4";

                                case 0x57: "CNVTDATE4";

                                case 0x58: "CNVTF4";

                                case 0x59: "CNVTBIT";

                                case 0x5a: "BOOLNOT";

                                case 0x5b: "CNVTNUME";

                                case 0x5c: "CNVTDECML";

                                case 0x5d: "SQLCASE";

                                case 0x5e: "TABREF";

                                case 0x5f: "CNVTI8";

                                case 0x60: "DEBUG_CMD";

                                case 0x61: "AOPANYNULL";

                                case 0x62: "AOPGETRID";

                                case 0x63: "AOPGROUPING";

                                case 0x64: "CNVTNCHAR";

                                case 0x65: "CNVTNVCHAR";

                                case 0x66: "CNVTTEXT";

                                case 0x67: "CNVTIMAGE";

                                case 0x68: "CNVTDATTIM";

                                case 0x69: "CNVTMONEY";

                                case 0x6a: "CNVTSSVARIANT";

                                case 0x6b: "CNVTNTEXT";

                                case 0x6e: "AOPSCOREPROBAGG";

                                case 0x6f: "AOPSCOREDETAGG";

                                case 0x70: "SECOPT";

                                case 0x71: "CNVTVCHAR";

                                case 0x72: "AOPCHECKSUMAGG";

                                case 0x73: "CNVTCHAR";

                                case 0x74: "AOPCHECKSUMAGGU";

                                case 0x75: "TPE";

                                case 0x76: "COMPHD";

                                case 0x77: "SETUSER";

                                case 0x78: "OFFSET";

                                case 0x79: "RETURNSTATUS";

                                case 0x7a: "AOPCHECKINDEX";

                                case 0x7b: "CONSTRAINT";

                                case 0x7c: "PROCID";

                                case 0x7d: "UPDATECURSOR";

                                case 0x7e: "DELETECURSOR";

                                case 0x7f: "AOPSTATMAN";

                                case 0x80: "RESDOM";

                                case 0x81: "EQ";

                                case 0x82: "LT";

                                case 0x83: "LE";

                                case 0x84: "GT";

                                case 0x85: "GE";

                                case 0x86: "NE";

                                case 0x87: "IS";

                                case 0x88: "AND";

                                case 0x89: "OR";

                                case 0x8a: "ADD";

                                case 0x8b: "SUB";

                                case 0x8c: "MUL";

                                case 0x8d: "DIV";

                                case 0x8e: "BYHEAD";

                                case 0x8f: "AGHEAD";

                                case 0x90: "CONCAT";

                                case 0x91: "MOD";

                                case 0x92: "ALL";

                                case 0x93: "CHANGETRACK";

                                case 0x94: "UNION";

                                case 0x95: "EXCEPTSET";

                                case 0x96: "INTERSECT";

                                case 0x98: "RULE";

                                case 0x99: "DENY";

                                case 0x9a: "SEQUENCE";

                                case 0x9c: "BOOLAND";

                                case 0x9d: "BOOLOR";

                                case 0x9e: "GETBIT";

                                case 0x9f: "BOOLXOR";

                                case 0xa0: "COLNAME";

                                case 0xa1: "COLFMT";

                                case 0xa2: "ASSIGN";

                                case 0xa4: "TABNAME";

                                case 0xa5: "COLINFO";

                                case 0xa6: "MULTARG";

                                case 0xa7: "ALTNAME";

                                case 0xa8: "ALTFMT";

                                case 0xa9: "ORDER";

                                case 0xaa: "ERROR";

                                case 0xab: "INFO";

                                case 0xac: "RETURNVALUE";

                                case 0xad: "LOGINACK";

                                case 0xae: "SQL_CONTROL";

                                case 0xaf: "ALTCONTROL";

                                case 0xb0: "DROPSCHEMA";

                                case 0xb1: "INVOKE";

                                case 0xb2: "FUNCCREATE";

                                case 0xb3: "FUNCDESTROY";

                                case 0xb4: "ROOT";

                                case 0xb5: "ASMCREATE";

                                case 0xb6: "CMD";

                                case 0xb7: "SETIDENTON";

                                case 0xb8: "SETIDENTOFF";

                                case 0xb9: "SETON";

                                case 0xba: "SETOFF";

                                case 0xbb: "SETSTATON";

                                case 0xbc: "SETSTATOFF";

                                case 0xbd: "SETRCON";

                                case 0xbe: "SETTSIZE";

                                case 0xbf: "SHUTDOWN";

                                case 0xc0: "COND";

                                case 0xc1: "SELECT";

                                case 0xc2: "SELECT_INTO";

                                case 0xc3: "INSERT";

                                case 0xc4: "DELETE_STMT";

                                case 0xc5: "UPDATE";

                                case 0xc6: "TABCREATE";

                                case 0xc7: "TABDESTROY";

                                case 0xc8: "INDCREATE";

                                case 0xc9: "INDDESTROY";

                                case 0xca: "GOTO";

                                case 0xcb: "DBCREATE";

                                case 0xcc: "DBDESTROY";

                                case 0xcd: "GRANT";

                                case 0xce: "REVOKE";

                                case 0xcf: "VIEWCREATE";

                                case 0xd0: "VIEWDESTROY";

                                case 0xd1: "ROW";

                                case 0xd2: "ABORT";

                                case 0xd3: "ALTROW";

                                case 0xd4: "BEGINXACT";

                                case 0xd5: "ENDXACT";

                                case 0xd6: "SAVEXACT";

                                case 0xd7: "DBEXTEND";

                                case 0xd8: "ALTERTAB";

                                case 0xd9: "AUDIT";

                                case 0xda: "AUDIT_INTO";

                                case 0xdb: "RETURN";

                                case 0xdc: "CONFIG";

                                case 0xdd: "TRIGCREATE";

                                case 0xde: "PROCCREATE";

                                case 0xdf: "PROCDESTROY";

                                case 0xe0: "EXECUTE";

                                case 0xe1: "TRIGDESTROY";

                                case 0xe2: "DBOPEN";

                                case 0xe3: "ENVCHANGE";

                                case 0xe4: "DUMPDB";

                                case 0xe5: "LOADDB";

                                case 0xe6: "DBCC_CMD";

                                case 0xe7: "CHECKPOINT";

                                case 0xe8: "DECLARE";

                                case 0xe9: "DEFAULTCREATE";

                                case 0xea: "TRUNCATETABLE";

                                case 0xeb: "DUMPXACT";

                                case 0xec: "RULECREATE";

                                case 0xed: "RULEDESTROY";

                                case 0xee: "DEFAULTDESTROY";

                                case 0xef: "LOADXACT";

                                case 0xf0: "BULKINSERT";

                                case 0xf1: "UPDATESTATS";

                                case 0xf2: "DISKBUILD";

                                case 0xf3: "WAITFOR";

                                case 0xf4: "UDF";

                                case 0xf5: "KILL";

                                case 0xf6: "RAISERROR";

                                case 0xf7: "PRINT";

                                case 0xf8: "UPDATETEXT";

                                case 0xf9: "SET";

                                case 0xfa: "LOADVOL";

                                case 0xfb: "READTEXT";

                                case 0xfc: "WRITETEXT";

                                case 0xfd: "DONE";

                                case 0xfe: "DONEPROC";

                                case 0xff: "LAZYWRITER";

                                case 0x100: "STATSDESTROY";

                                case 0x101: "SETXCTLVL";

                                case 0x103: "TRACECREATE";

                                case 0x104: "TRACESETSTATUS";

                                case 0x105: "TRACESETEVENT";

                                case 0x106: "TRACESETFILTER";

                                case 0x107: "TRACEINFO";

                                case 0x108: "TRACEEVENTINFO";

                                case 0x109: "TRACEFILTERINFO";

                                case 0x10a: "TRACEDATA";

                                case 0x10b: "TRACEGENEVENT";

                                case 0x10c: "OBJIDUPDATE";

                                case 0x10d: "TRACETABLE";

                                case 0x10e: "ASMDESTROY";

                                case 0x10f: "ASMALTER";

                                case 0x110: "TYPEDESTROY";

                                case 0x111: "TYPECREATE";

                                case 0x112: "CLRPROCEDURECREATE";

                                case 0x113: "CLRFUNCTIONCREATE";

                                case 0x114: "SERVICEALTER";

                                case 0x115: "MSGTYPECREATE";

                                case 0x116: "MSGTYPEDESTROY";

                                case 0x117: "MERGE_STMT";

                                case 0x118: "BRKRCMPLTNHDLR";

                                case 0x119: "CONTRACTCREATE";

                                case 0x11a: "CONTRACTDESTROY";

                                case 0x11b: "SERVICECREATE";

                                case 0x11c: "SERVICEDESTROY";

                                case 0x11d: "QUEUECREATE";

                                case 0x11e: "QUEUEDESTROY";

                                case 0x11f: "QUEUEALTER";

                                case 0x120: "BEGINMONOLOG";

                                case 0x121: "BEGINDIALOG";

                                case 0x122: "ENDCONVERSATION";

                                case 0x123: "MOVECONVERSATION";

                                case 0x124: "RECEIVE";

                                case 0x125: "SEND";

                                case 0x126: "FTXTINDEX_CREATE";

                                case 0x127: "FTXTINDEX_ALTER";

                                case 0x128: "FTXTINDEX_DROP";

                                case 0x129: "PRTFUNCTIONCREATE";

                                case 0x12a: "PRTFUNCTIONDROP";

                                case 0x12b: "PRTSCHEMECREATE";

                                case 0x12c: "PRTSCHEMEDROP";

                                case 0x12d: "ENABLETRIGGER";

                                case 0x12e: "DISABLETRIGGER";

                                case 0x130: "FTXTCATALOG_CREATE";

                                case 0x131: "FTXTCATALOG_ALTER";

                                case 0x132: "FTXTCATALOG_DROP";

                                case 0x135: "XMLSCHEMACREATE";

                                case 0x136: "XMLSCHEMAALTER";

                                case 0x137: "XMLSCHEMADROP";

                                case 0x138: "ENDPOINTCREATE";

                                case 0x139: "ENDPOINTALTER";

                                case 0x13a: "ENDPOINTDROP";

                                case 0x13b: "USERCREATE";

                                case 0x13c: "USERALTER";

                                case 0x13d: "USERDROP";

                                case 0x13e: "BRKRMSGXMITTER";

                                case 0x13f: "ROLECREATE";

                                case 0x140: "ROLEALTER";

                                case 0x141: "ROLEDROP";

                                case 0x142: "APPROLECREATE";

                                case 0x143: "APPROLEALTER";

                                case 0x144: "APPROLEDROP";

                                case 0x145: "LOGINCREATE";

                                case 0x146: "LOGINALTER";

                                case 0x147: "LOGINDROP";

                                case 0x148: "SYNONYMCREATE";

                                case 0x149: "SYNONYMDROP";

                                case 0x14a: "CREATESCHEMA";

                                case 0x14b: "ALTERSCHEMA";

                                case 0x14c: "AGGCREATE";

                                case 0x14d: "AGGDESTROY";

                                case 0x14e: "CLRTRIGGERCREATE";

                                case 0x14f: "PRTFUNCTIONALTER";

                                case 0x150: "PRTSCHEMEALTER";

                                case 0x151: "INDALTER";

                                case 0x152: "GET_CONVGROUP";

                                case 0x153: "BRKRMSGDSPTCHR";

                                case 0x154: "BRKREVENTHNDLR";

                                case 0x155: "BRKRINITIALIZER";

                                case 0x156: "BRKRTASK";

                                case 0x157: "ROUTECREATE";

                                case 0x158: "ROUTEALTER";

                                case 0x159: "CONVTIMERBEGIN";

                                case 0x15a: "ROUTEDESTROY";

                                case 0x15b: "XE_DISPATCHER";

                                case 0x15c: "RESOURCEMONITOR";

                                case 0x15d: "BEGINTRY";

                                case 0x15e: "BEGINCATCH";

                                case 0x15f: "ENDTRYCATCH";

                                case 0x160: "EVENTNOTIFICATIONCREATE";

                                case 0x161: "EVENTNOTIFICATIONDROP";

                                case 0x162: "XMLINDEXCREATE";

                                case 0x163: "XE_TIMER";

                                case 0x164: "BROKER_PRIORITY_CREATE";

                                case 0x165: "DMLINTERNAL";

                                case 0x166: "BINDINGCREATE";

                                case 0x167: "BINDINGALTER";

                                case 0x168: "BINDINGDESTROY";

                                case 0x169: "TRCQUEUETASK";

                                case 0x16a: "FTXT_CATMON_TASK";

                                case 0x16b: "FTXT_IGATH_TASK";

                                case 0x16c: "FTXT_AUTOPROP_TASK";

                                case 0x16d: "FTXT_AUTOPROPMON_TASK";

                                case 0x16e: "MSGTYPEALTER";

                                case 0x170: "CERTCREATE";

                                case 0x171: "CERTDROP";

                                case 0x172: "CERTALTER";

                                case 0x173: "FAKEGOTO";

                                case 0x174: "SYSCACHEOBJECTS";

                                case 0x175: "EXECUTEAS";

                                case 0x176: "REVERT";

                                case 0x177: "CERTDUMP";

                                case 0x178: "RESTOREFILELISTONLY";

                                case 0x179: "RESTOREVERIFYONLY";

                                case 0x17a: "RESTOREREWINDONLY";

                                case 0x17b: "RESTORELABELONLY";

                                case 0x17c: "FLUSH_LAZY_COMMIT_CMD";

                                case 0x17d: "SECDESCCREATE";

                                case 0x17e: "SECDESCDROP";

                                case 0x17f: "SECDESCALTER";

                                case 0x182: "OBFUSKEYCREATE";

                                case 0x183: "OBFUSKEYALTER";

                                case 0x184: "OBFUSKEYDROP";

                                case 0x185: "OBFUSKEYOPEN";

                                case 0x186: "OBFUSKEYCLOSE";

                                case 0x187: "OBFUSKEYCLOSEALL";

                                case 0x188: "SRVMASTERKEYALTER";

                                case 0x189: "SRVMASTERKEYDUMP";

                                case 0x18a: "SRVMASTERKEYLOAD";

                                case 0x18b: "ADDDROPCRYPTO";

                                case 0x18c: "ALTERAUTHORIZATION";

                                case 0x18d: "SELECTWITHOUTQUERY";

                                case 0x18e: "DBCC_TABLE_CHECK";

                                case 0x18f: "DBCC_TABLE_REPAIR";

                                case 0x190: "DBCC_ALLOC_CHECK";

                                case 0x191: "DBCC_ALLOC_REPAIR";

                                case 0x192: "DBCC_SYSTABLE_CHECK";

                                case 0x193: "DBCC_SYSTABLE_REPAIR";

                                case 0x194: "DBCC_SSB_CHECK";

                                case 0x195: "DBCC_CATALOG_CHECK";

                                case 0x196: "DBCC_INDEXEDVIEW_CHECK";

                                case 0x197: "DBCC_INDEXEDVIEW_REPAIR";

                                case 0x198: "CREDENTIALCREATE";

                                case 0x199: "CREDENTIALALTER";

                                case 0x19a: "CREDENTIALDROP";

                                case 0x19b: "MASTERKEYCREATE";

                                case 0x19c: "MASTERKEYDROP";

                                case 0x19d: "MASTERKEYOPEN";

                                case 0x19e: "MASTERKEYCLOSE";

                                case 0x19f: "MASTERKEYLOAD";

                                case 0x1a0: "MASTERKEYDUMP";

                                case 0x1a1: "MASTERKEYALTER";

                                case 0x1a2: "MASTERKEYALLCLOSE";

                                case 0x1a3: "ASYMKEYCREATE";

                                case 0x1a4: "ASYMKEYDROP";

                                case 0x1a5: "ASYMKEYOPEN";

                                case 0x1a6: "ASYMKEYCLOSE";

                                case 0x1a7: "ASYMKEYLOAD";

                                case 0x1a8: "ASYMKEYDUMP";

                                case 0x1a9: "ASYMKEYALTER";

                                case 0x1aa: "ASYMKEYALLCLOSE";

                                case 0x1ab: "DBM_MSGXMITTER";

                                case 0x1ac: "DBCC_SHRINK_RECLAIM_SPACE";

                                case 0x1ad: "DBCC_SHRINK_COMPACT_FILES";

                                case 0x1ae: "DBCC_SHRINK_COMPACT_LOBS";

                                case 0x1af: "RDB_DBCC_TABLE_CHECK";

                                case 0x1b0: "RDB_DBCC_TABLE_REPAIR";

                                case 0x1b1: "RDB_DBCC_ALLOC_CHECK";

                                case 0x1b2: "RDB_DBCC_ALLOC_REPAIR";

                                case 0x1b3: "RDB_DBCC_SYSTABLE_CHECK";

                                case 0x1b4: "RDB_DBCC_SYSTABLE_REPAIR";

                                case 0x1b5: "RDB_DBCC_SSB_CHECK";

                                case 0x1b6: "RDB_DBCC_CATALOG_CHECK";

                                case 0x1b7: "RDB_DBCC_INDEXEDVIEW_CHECK";

                                case 0x1b8: "RDB_DBCC_INDEXEDVIEW_REPAIR";

                                case 0x1b9: "USEDB";

                                case 0x1ba: "UTPRINTF";

                                case 0x1bb: "SECURITYAUDIT";

                                case 0x1bc: "FSAGENT";

                                case 0x1bd: "XEVENT_CREATE";

                                case 0x1be: "XEVENT_ALTER";

                                case 0x1bf: "XEVENT_DROP";

                                case 0x1c0: "CREATE_RESOURCE_POOL";

                                case 0x1c1: "ALTER_RESOURCE_POOL";

                                case 0x1c2: "DROP_RESOURCE_POOL";

                                case 0x1c3: "CREATE_RESOURCE_GROUP";

                                case 0x1c4: "ALTER_RESOURCE_GROUP";

                                case 0x1c5: "DROP_RESOURCE_GROUP";

                                case 0x1c6: "ALTER_RESOURCE_GOVERNOR";

                                case 0x1c7: "CRYPTOPROVCREATE";

                                case 0x1c8: "CRYPTOPROVALTER";

                                case 0x1c9: "CRYPTOPROVDROP";

                                case 0x1ca: "DEK_CREATE";

                                case 0x1cb: "DEK_ALTER";

                                case 0x1cc: "DEK_DROP";

                                case 0x1cd: "BROKER_PRIORITY_ALTER";

                                case 0x1ce: "BROKER_PRIORITY_DROP";

                                case 0x1cf: "CLONEREFRESH";

                                case 0x1d0: "FAILUREMONITOR_HEARTBEAT";

                                case 0x1d1: "MATRIXTCM";

                                case 0x1d2: "FILTER_EXPRS";

                                case 0x1d3: "COMPUTED_COLS";

                                case 0x1d4: "SERVER_AUDIT_CREATE";

                                case 0x1d5: "SERVER_AUDIT_ALTER";

                                case 0x1d6: "SERVER_AUDIT_DROP";

                                case 0x1d7: "AUDITSPECIFICATIONCREATE";

                                case 0x1d8: "AUDITSPECIFICATIONALTER";

                                case 0x1d9: "AUDITSPECIFICATIONDROP";

                                case 0x1da: "FTXTSTOPLIST_CREATE";

                                case 0x1db: "FTXTSTOPLIST_ALTER";

                                case 0x1dc: "FTXTSTOPLIST_DROP";

                                case 0x1dd: "TABVARCREATE";

                                case 0x1de: "NOPFORCTE";

                                case 0x1df: "INSERTEXEC";

                                default: "Undefined";

                }

}

Xinwei Hong, SQL Server Protocols
Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights

Windows 7 AppCompat changes and SQL Server client and setup hangs

$
0
0

Windows 7 and Windows Server 2008 R2 include many changes to the core operating system. This blog post is targeted at resolving the impact on SQL Server client drivers and SQL Server setup of one breaking change in Windows 7 and Windows Server 2008 R2.

The changes to behavior of the GetOverlappedResult API, which SQL Server client drivers use for performing network reads and writes, is described here: http://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx. When SQL Server client drivers get the new Windows behavior of GetOverlappedResult, they will reliably hang as soon as the network connection is opened. So, when using ADO.Net, you would notice that the thread hangs as soon as your application calls SQLConnection.Open(). This also applies to other client drivers, like the SQL Server Native Client 10.0. Since SQL Server’s setup includes making connections to the database instance to perform various T-SQL queries, this may also cause a hang during SQL Server setup. It sounds like a serious problem!

Fortunately, Windows 7 and Windows Server 2008 R2 also built in the “Switchback” feature to keep existing applications working. Switchback examines some properties of the process and DLLs and determines whether they should receive the new Windows 7 behavior or the pre-existing Windows behavior. For all existing SQL Server clients, SwitchBack should choose the original Windows behavior by default, so you should never see this hang.

However, Switchback can be manually overridden, causing the OS to always give all applications the new Windows behavior. If that override is set, SQL Server clients will reliably show the hang described above. To check if this is the source of your SQL Server connection’s hang, check this registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat

If this key exists, and it has the value SbEnable set to 0, the Switchback functionality is overridden. To allow SQL Server client drivers to connect, set the SbEnable value to 1 and restart the machine.

UPDATE: I wanted to add that this setting is usually configured through Group Policy for multiple machines, rather than individually through the registry as described above. The Group Policy setting is named "Turn off Switchback Compatibility Engine" and can be configured as described in this technet article: http://technet.microsoft.com/en-us/library/ee126130(WS.10).aspx. As described above, the Switchback Compatibility Engine needs to be running (so this setting needs to be Disabled) for SQL Server's client drivers/providers to function correctly.

Dan Benediktson
SQL Server Protocols

Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights


SQL Server Customer Survey (Fall 2010)

$
0
0

Greetings to the SQL Server community:

 

Last year in October 2009, we introduced  the process of interacting on a regular basis with the developers and users in the form of surveys.  During the last 12 months, we completed surveys that focused on the broad SQL Connectivity components, including ODBC, ADO.NET, JDBC and PHP.  These surveys provide us with an ability to validate some of the requests we have got from developers, users and partners such as you as well as ideas that we have gathered internally as a part of our development process.    You have seen our roadmap for SQL Server evolve based on the feedback that we have received.

 

We view your organization as a key stakeholder in the process that we have to identify areas for future investments.  The feedback you provide is valuable and each response will be read and will be treated with utmost confidence. 

 

The survey can be found in the link below and will be available until 25th October, 2010 5:00 PM PST.

 

 http://www.zoomerang.com/Survey/WEB22BAW29Z8P2

 

Thank you,

 

Raghu Ram

Principal Group Program Manager

SQL Connectivity

SQL Server RDBMS Group

Microsoft Corporation

Last Chance: Help Shape The Future Of SQL Server!

$
0
0

Hello reader,

We have extended our SQL Connectivity Customer Survey until November 2, 2010 5:00PM PST.  If you have not done so please take a moment to fill our our easy 10 question survey listed below at the link to help shape the future of SQL Server.

Thanks, SQL Connectivity Team

Greetings to the SQL Server community :

 

Last year in October 2009, we introduced  the process of interacting on a regular basis with the developers and users in the form of surveys.  During the last 12 months, we completed surveys that focused on the broad SQL Connectivity components, including ODBC, ADO.NET, JDBC and PHP.  These surveys provide us with an ability to validate some of the requests we have got from developers, users and partners such as you as well as ideas that we have gathered internally as a part of our development process.    You have seen our roadmap for SQL Server evolve based on the feedback that we have received.

 

We view your organization as a key stakeholder in the process that we have to identify areas for future investments.  The feedback you provide is valuable and each response will be read and will be treated with utmost confidence. 

 

The survey can be found in the link below and will be available until November 2, 2010 5:00 PM PST.

 

 http://www.zoomerang.com/Survey/WEB22BAW29Z8P2

 

Thank you,

 

Raghu Ram

Principal Group Program Manager

SQL Connectivity

SQL Server RDBMS Group

Microsoft Corporation

 

Annual SQL Connectivity Customer Survey

$
0
0

Announcing Microsoft SQL Server ODBC Driver for Linux

$
0
0
Greetings Developer community:
We heard yesterday and today at the PASS conference about the exciting new areas that we are investing in bringing the power of SQL Server to our customers. Many of our developers who rely on native connectivity to SQL Server primarily use ODBC for their connectivity needs. We have been supporting ODBC as a part of the SQL Native Access Client (SNAC) libraries. In our continued commitment to interoperability, today we also announced that we will be releasing the Microsoft SQL Server ODBC Driver for Linux. We will be releasing first community technology preview (CTP) around mid-November and will be available along with SQL Server 2012 when it is released. Please look for announcement on our SQL Connectivity home page and SQL Server blog page.
We will be showcasing Microsoft SQL Server ODBC Driver for Linux along with our Java and PHP solutions for SQL Server and Azure at PASS conference session “[AD-211-M] Developing Multi-Platform Applications for Microsoft SQL Server and Azure” on Thursday October 13th at 5:00PM at Washington State Convention Center Room #4C4. Also, if you have any questions or feedback on our multi-platform strategy as well as the entire gamut of support we provide to the application developers, I would encourage you to attend the PASS Panel Discussion with SQL Connectivity Leadership “[AD-101-M] SQL Connectivity Leadership Unplugged” on Friday, October 14, 2011, 2:30 PM - 3:45 PM at Washington State Convention Centre Room# 612 where I will be hosting a panel along with the rest of the leadership team that drives the strategy for our application platform.
Thanks,
Raghu Ram
Principal Group Program Manager
SQL Server
Viewing all 32 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>