我注意到当我使用不推荐使用的功能时,SQL Server Profiler包含一个事件:
在使用将从SQL Server的未来版本中删除的功能时发生,但不会从SQL Server的下一个主要版本中删除.为了延长应用程序的使用寿命,应避免使用导致Deprecation Announcement事件类或hte Deprecation Final Support事件类的功能.
我打开它,就在记录任何Login事件之前,我得到:
将在SQL Server的未来版本中删除不推荐使用的加密算法rc4.避免在新的开发工作中使用此功能,并计划修改当前使用它的应用程序.请使用更强大的算法.
但我不是在使用RC4!我甚至没有使用AES.我什么都没用.我只是连接到SQL Server.
还是我?
奖金Chatter我甚至做错了什么?SQL Server,不推荐使用的功能对象
不推荐使用的加密算法
将在下一版本的SQL Server中删除不推荐使用的加密算法rc4.避免在新的开发工作中使用此功能,并计划修改当前使用它的应用程序.RC4算法很弱,仅支持向后兼容性.当数据库处于兼容级别90或100时,只能使用RC4或RC4_128对新材料进行加密.(不推荐.)使用较新的算法,例如其中一种AES算法.在SQL Server 2012中,使用RC4或RC4_128加密的材料可以在任何兼容级别进行未加密.
我只是打开一个连接到SQL Server:
String connectionString = "Provider=SQLOLEDB;Network Library=DBMSSOCN;Data Source=helium; User ID=Contoso;Password=correctbatteryhorsestaple" var conn = new ADOConnection(); conn.ConnectionString = connectionString; conn.Open()
即使事件的描述说:
当您使用...时出现的功能
我不使用功能时是否可能生成它?这个警告有可能:
当有人登录时发生,无论他们使用RC4
实际上只是一个公告?另一个应用程序,一个ASP.net MVC ADO-EF(一种完全不同的连接技术)得到了同样的错误.
当您看到它们时,其他弃用警告的文档会给出:
每次编译时发生一次.
每个查询发生一次.
在DDL语句中每次使用时发生一次.
每个数据库启动时发生一次事件,每次整理使用一次.
每次使用发生一次.
虽然这个警告的文档没有提到你何时会看到它.
避免在新的开发工作中使用此功能,并计划修改当前使用它的应用程序.
当我无法弄清楚我现在在哪里使用它时,如何在将来的工作中避免使用RC4?
配置您的2008 R2服务器.你明白了吗?
☒是的
☐否
是否使用RC4存储SQL Server身份验证密码?
不可以.使用可逆加密不会存储SQL Server密码.使用SHA-1对密码进行加密和散列:
hashBytes = 0x0100 + fourByteSalt + SHA1(utf16EncodedPassword+fourByteSalt)
在SQL Server 2012中,他们通过SHA-1切换到SHA2.