¼ÓÔØÖÐ...
²é¿´ÎÄÕÂ
  • Ïê½â΢ÈíMicrosoft SQL Server 2005µÄ°²È«²ßÂÔ
  • ×÷ÕߣºÎ´Öª À´Ô´£ºÎ´Öª Ìí¼Óʱ¼ä£º2006Äê7ÔÂ3ÈÕ ×ÖÌå:´ó ÖРС
  • 81669

    SQL·þÎñÆ÷2005ÌṩÁËÑéÖ¤ºÍÊÚȨ·½ÃæµÄºÜ¶à¸Ä½ø£¬»¹ÓÐÖ§³Ö¼ÓÃܼ¼Êõ¡ª¡ªÕâʹµÃÊý¾Ý¿âµÄÉè¼ÆºÍÖ´Ðиü¼Ó°²È«¡£

    Èí¼þµÄ°²È«ÐÔÊÇÒ»¸öÖØÒªµÄ»°Ì⣬ÒòΪÿÌì¶¼ÓÐһЩÐµĹ¥»÷±»·¢ÏÖ¡£Windows 2003·þÎñÆ÷ÊÇ΢ÈíÏÂÏߵĵÚÒ»¸ö±ê°ñ×Å¡°Ä¬Èϰ²È«¡±µÄ·þÎñÆ÷£¬Õâ¸ö·þÎñÆ÷Ëø¶¨ÔÚĬÈÏ״̬Ï£¬Äã²»µÃ²»È¥·Ö±ðµÄ¼¤»îÿһ¸öÄãÏëµÃµ½µÄ·þÎñ¡£

    ËùÒÔ£¬¶Ô¹¥»÷ÕßÀ´ËµÒªµÇ½ϵͳÊÇÒ»¼þÄÑÊ¡£Í¬ÑùµÄ²ßÂÔÒ²Ó¦ÓÃÔÚÁËSQL·þÎñÆ÷2005ÉÏ£ºÕû¸öÊý¾Ý¿â·þÎñÆ÷±»Ëø¶¨ÔÚĬÈÏ״̬Ï£¬Ã¿Ïî·þÎñºÍÌØÐÔ¶¼ÒªÔÚÃ÷È·µÄ±»¼¤»î²ÅÄÜ»ñµÃ¡£ÕýÒòΪÈç´Ë£¬SQL·þÎñÆ÷ºÍSQL·þÎñÆ÷½çÃæÅäÖù¤¾ßһͬ·¢ÐУ¬


    Ïê½â΢ÈíSQL 2005µÄ°²È«²ßÂÔ 

    ͼ1

    ÕâÑùÄã¾Í¿ÉÒÔÔÚ°²×°Ê±¾ö¶¨ÄÄÏî·þÎñºÍÌØÐÔ´¦ÔÚ¼¤»î״̬¡£


    Q5gP9[t

    ÑéÖ¤


    Q5gP9[t

    ÑéÖ¤ÊǵÚÒ»¸ö±ØÐë³É¹¦Íê³ÉµÄÏîÄ¿£¬ÒÔ±ãÓڵõ½µÇ½SQL·þÎñÆ÷µÄȨÏÞ£¬Í¼2²ûÃ÷Á˸ð²È«¸ÅÄîµÄģʽ¡£


    Q5gP9[t

    Ïê½â΢ÈíSQL 2005µÄ°²È«²ßÂÔ 

    ͼ2

    ºÍÒÔǰ°æ±¾µÄÏàËÆ£¬SQL·þÎñÆ÷2005Ö§³ÖWindowsºÍ¸´ºÏÑéÖ¤Á½ÖÖģʽ£¬Î¢Èí½¨ÒéʹÓÃWindowsÑé֤ģʽ×÷Ϊ°²È«µÄ±£ÕÏ¡£ÔÚ¸ÃģʽÏ£¬°²È«¼ì²é½«Õë¶ÔÏÖÓÐĿ¼¶øÖ´ÐС£µ«ÊÇÕâÖÖģʽµÄȱµãÊÇÓû§ºÍÊý¾Ý¿â·þÎñÆ÷±ØÐë´æÔÚÓÚͬһÏÖÓÐĿ¼ÓòÏ¡£

    µ±ÄãʹÓý¨Á¢ÓÚ¸´ºÏÑé֤ģʽµÄSQL·þÎñÆ÷ʱ£¬SQL·þÎñÆ÷½«Ìá½»µÇ½ƾ֤¡£¸ÃÅäÖÃÔÚһЩ·½°¸ÖкÜÃô¸Ð£¬µ«ÊÇȱµã¾ÍÊÇÄã²»Äܹ»ÏñÏÖÓÐĿ¼ÄÇÑùʹÓð²È«µÄ»ù´¡ÅäÖá£

    SQL·þÎñÆ÷2005µÄÒ»¸öй¦ÄܾÍÊÇ£¬µ±ÄãʹÓÃWindowsÑé֤ģʽʱ£¬Ëü¿ÉÒÔÔÚÑéÖ¤¹ý³ÌÖйÜÀíÃÜÂëºÍÍ˳ö²ßÂÔ¡£Äã¿ÉÒÔ¹ÜÀíÕÊ»§µÄȨÏÞ£¬±ÈÈçÔöǿʽÃÜÂëºÍÊý¾ÝÓÐЧÆÚ¡£È»¶ø£¬Ö»ÓÐÔÚWindows 2003 ServerϵͳÖа²×°µÄSQL ·þÎñÆ÷2005²ÅÓµÓÐÕâÑùµÄ¹¦ÄÜ¡£ÔÚÆäËûµÄWindows²Ù×÷ƽ̨ÉÏÕâЩ¹¦ÄܵÄÓ¦Óñà³Ì½Ó¿Ú£¨API£©²»¿ÉÓá£

    µ±ÄãÉ趨һ¸öÕÊ»§µÄÃÜÂëʱ¿ÉÒÔ×öÈçÏÂÏÞÖÆ£º

    1¡¢ ÃÜÂ볤¶ÈÖÁÉÙ6×Ö·û£¨SQL·þÎñÆ÷Ö§³ÖµÄÃÜÂëµÄ³¤¶ÈΪ1-128×Ö·û£©¡£

    2¡¢ ÃÜÂë±ØÐëʹÓò»Í¬ÀàÐ͵Ä×Ö·û£¨´óд×Öĸ¡¢Ð¡Ð´×Öĸ¡¢Êý×Ö¡¢ÌØÊâ·ûºÅµÈ£©¡£

    3¡¢ ÃÜÂëÖм䲻ÄܳöÏÖ"Admin", "Administrator", "Password", "sa"»ò "sysadmin"¡£

    4¡¢ ³ýÁËÕâЩÏÞÖÆÍ⣬ÃÜÂë²»ÄÜΪ¿Õ¡£

    µ±ÄãÉú³ÉеÄ×¢²áÓû§Ê±£¬Äã¿ÉÒÔͨ¹ýSQLÓï¾äCREATE LOGINÀ´Ê¹ÓÃCHECK_EXPIRATIONºÍCHECK_POLICYÀ©Õ¹Ãû ¡£CHECK_EXPIRATION¿ØÖƵǽµÄÓÐЧÆÚ£¬CHECK_POLICY¼¤»îÉÏÊöµÄÃÜÂëÏÞÖÆ²ßÂÔ¡£

    ÐÂÑ¡ÏîMUST_CHANGEʹÓû§ÔÚµÚÒ»´ÎµÇ½ʱ¿ÉÒԸıäÃÜÂë¡££¨SQL·þÎñÆ÷2005²âÊÔµÚ¶þ°æÄ¿Ç°²»Ö§³Ö¸Ã¹¦ÄÜ£©£¬±í1ÁгöÁËÕâЩй¦ÄܵĴúÂ룺


    Q5gP9[t

    ±í1

    CREATE LOGIN Paul

    WITH PASSWORD='P@ssw0rd1'

    MUST_CHANGE,

    CHECK_EXPIRATION = ON,

    CHECK_POLICY = ON

    ÔÚWindows Server 2003²Ù×÷ƽ̨ÔËÐеÄSQL·þÎñÆ÷2005Ò²¿ÉÖ§³Ö¶ËµãÑéÖ¤£¬ÕâÑù¿ÉÒÔÈ·±£µ±SQL·þÎñÆ÷ͨ¹ýHttp.sys±©Â¶XML Web·þÎñʱÄܹ»°²È«µÄ½»Á÷ÐÅÏ¢¡£


    Q5gP9[t

    ÊÚȨ


    Q5gP9[t

    µ±Óû§³É¹¦Í¨¹ýSQL·þÎñÆ÷µÄÑéÖ¤ºó£¬ÊÚȨ³ÌÐò½«¾ö¶¨Óû§ÔÚÊý¾Ý¿âÖÐÓÐÄÄЩȨÀû¡£ÔÚÕâ¸ö²¿·Ö£¬SQL·þÎñÆ÷2005ÓÐÁ½¸öеÄÌØÐÔ£º

    l Óû§ºÍģʽ£¨Schema£©·ÖÀë

    l Ö´ÐÐÓï¾³


    Q5gP9[t



    Óû§ºÍģʽ£¨Schema£©·ÖÀë

    ģʽ£¨Schema£©ÊÇÒ»¸öÄã¿ÉÒÔÓÐÂß¼­µÄ½«Êý¾Ý¿â¶ÔÏ󣨱í¸ñ¡¢´æ´¢¹æ³Ì¡¢ÊÓͼµÈ£©·ÖÀàµÄÈÝÆ÷¡£ËüºÍ.NET FrameworkÀà¿âÀïµÄÃüÃû¿Õ¼äÒ»Ñù¡£ ÒòΪSQL·þÎñÆ÷ÄÚµÄģʽҲ¿ÉÒÔÓµÓÐÒ»¸öϵÖ÷£¬Äã¿ÉÒԹ涨ÔÚ¸ø¶¨Ä£Ê½ÀïµÄËùÓжÔÏó¶¼ÊôÓÚͬһ¸öϵÖ÷¡£SQL·þÎñÆ÷2000ûÓкܺõÄÖ´ÐÐģʽ£ºÄ£Ê½µÄÃû³ÆÓëÓû§ÃûÏàͬ¡£ËùÒÔ£¬ÔÚģʽºÍÊý¾Ý¿â¶ÔÏóµÄϵÖ÷Ö®¼äÓÐÖ±½ÓµÄ¹ØÏµ£¨¼ûͼ3£©¡£


    (ͼƬ½Ï´ó£¬ÇëÀ­¶¯¹ö¶¯Ìõ¹Û¿´) 

     Í¼3

    SQL·þÎñÆ÷2000ÄÚµÄÒ»¸ö´óÎÊÌâ¾ÍÊÇģʽ±ØÐëʹÓÃÒ»¸öÈ«µ±ÏÞÃû³Æ£¨Ä£Ê½.¶ÔÏóÃû³Æ£©¡£µ«Êǵ±Äã´ÓÊý¾Ý¿âÄÚ³·ÏúÒ»¸öÓû§Ê±£¬ÄÇô¶ÔÏóµÄÈ«µ±ÏÞÃû³Æ¾Í¸Ä±äÁË¡£²»ÐÒµÄÊÇ£¬ÄãÔÚÊý¾Ý¿âÄÚ×öµÄÕâÏî¸Ä±äÔÚ¿Í»§¶Ë²éѯÖÐÒ²¸Ä±äÁË£¬¶øÇÒÕâÑùµÄ¸Ä±äÓÐʱºò´ú¼Û°º¹ó¡£ÔÚSQL·þÎñÆ÷2005ÖУ¬Ä£Ê½ÊÇÊý¾Ý¿âÖеÄÒ»¸öµ¥¶À¶ÔÏó£¬ÓÐËü×Ô¼ºµÄÃû×ÖºÍϵÖ÷£¬ºÍÓû§²»ÔÙÓйØÏµ£¨¼ûͼ4£©¡£

    Ïê½â΢ÈíSQL 2005µÄ°²È«²ßÂÔ 

    ͼ4

    ÏÖÔÚÄã¿ÉÒÔÔÚÊý¾Ý¿âÖÐɾ³ýºÍÔö¼ÓÓû§£¬¶ø²»ÓÃÔÚÈí¼þÖиü¸Ä£¨¼´²»ÊÇÔÚ¿Í»§¶ËÒ²²»ÊÇÔÚÊý¾Ý¿â¶Ë£©¡£´ËÍ⣬Äã¿ÉÒÔ¸øÄ£Ê½Ö¸ÅÉȨÏÞÀ´¿ØÖÆÔÚÌØ¶¨Ä£Ê½ÖзÃÎʶÔÏóµÄȨÏÞ¡£

    ±í¶þÏÔʾÁËÔÚSQL·þÎñÆ÷2005ÖеÄģʽµÄʹÓ᣸ôúÂëÒ²¿ÉÒÔ´ÓSchemas.sqlÎļþÖÐÏÂÔØ»ñµÃ¡£


    Q5gP9[t

    ±í2

    USE master

    GO


    Q5gP9[t

    -- Create database logins

    CREATE LOGIN Paul WITH PASSWORD='p@ssw0rd1'

    CREATE LOGIN Mary WITH PASSWORD='p@ssw0rd1'


    Q5gP9[t

    USE TestDatabase

    GO

    CREATE USER Paul FOR LOGIN Paul

    CREATE USER Mary FOR LOGIN Mary


    Q5gP9[t

    -- Create a new schema

    CREATE SCHEMA SalesData


    Q5gP9[t

    -- Create a new table in the schema "SalesData"

    CREATE TABLE SalesData.SalesPromotion

    (

    ID int,

    [Name] varchar(255)

    )


    Q5gP9[t

    GRANT ALL ON SalesData TO Paul

    ALTER USER Paul WITH DEFAULT SCHEMA = SalesData


    Q5gP9[t

    GRANT SELECT ON SCHEMA::SalesData TO MARY



    Ö´ÐÐÓï¾³



    SQL·þÎñÆ÷2005µÄÁíÒ»¸öÌØÐÔ¾ÍÊÇ¿ÉÒÔÈÃÄã¸Ä±ä´æ´¢³ÌÐò¡¢Óû§¶¨Ò幦ÄÜ¡¢´¥·¢³ÌÐòµÄÖ´ÐÐÓï¾³¡£Äã¿ÉÒÔͨ¹ýEXECUTE ASÓï¾äÀ´¸Ä±äÖ´ÐÐÓï¾³´Ó¶ø¿ØÖÆÔÚÄĸöÓû§ÏÂÃæÖ´ÐÐÕâЩÊý¾Ý¿â¶ÔÏó¡£Õâ¿ÉÖ§³ÖÏÂÁÐÑ¡Ï

    l EXECUTE AS CALLER

    l EXECUTE AS USER='user name'

    l EXECUTE AS SELF

    l EXECUTE AS OWNER

    EXECUTE AS CALLERÊÇĬÈÏÑ¡ÏֻҪÓû§ÈϿɾͿÉÒÔÖ´Ðд¢´æ³ÌÐò¡£Í¨¹ý EXECUTE AS USER£¬Äã¿ÉÒÔÖ¸¶¨ÔÚÄÄЩÓû§Ï¸ô¢´æ³ÌÐò²ÅÖ´ÐС£µ±ÄãʹÓÃEXECUTE AS SELF£¬´¢´æµÄ³ÌÐò¾ÍÔÚ´´½¨ÕßµÄÈÏ¿ÉÏÂÖ´ÐС£×îºó£¬Äã¿ÉÒÔʹÓÃEXECUTE AS OWNERÔÚ¶ÔÏóϵÖ÷µÄÈÏ¿ÉÏÂÖ´Ðд¢´æ³ÌÐò¡£


    Q5gP9[t

    ÃÜÂëϵͳ


    Q5gP9[t

    µ±ÄãÇëÇóʹÓÃÃÜÂëϵͳʱ£¬Äã±ØÐëÕÆ¹ÜºÃÃÜÂ루·Ç¶Ô³Æ¼ÓÃÜËã·¨¸öÈËÃÜÂë»ò¶Ô³Æ¼ÓÃÜËã·¨¹²ÏíÃÜÂ룩£¬SQL·þÎñÆ÷2005ÌṩÁ½ÖÖÃÜÂë¹ÜÀí·½°¸£º

    l Manage the key yourself

    l SQL Server manages your key

    µ±Äã×Ô¼º¹ÜÀíÃÜÂëʱ£¬SQL·þÎñÆ÷ͨ¹ýÒ»¸öÖ¸¶¨µÄ¿ÚÁîÔÚÊý¾Ý¿âÖд¢´æ¶Ô³ÆÃÜÂ룬Äã±ØÐëÔÚÒ»¸ö°²È«Î»Öñ£´æ¿ÚÁî¡£µ±SQL·þÎñÆ÷´úÄã¹ÜÀíÃÜÂëʱ£¬Ëü²ÉÓÃService Master KeyºÍDatabase Master Key¡£

    ͼ5ÏÔʾÁ˸ùý³Ì¡£

    Ïê½â΢ÈíSQL 2005µÄ°²È«²ßÂÔ 

    ͼ5

    ÕýÈçÄãËù¿´µ½µÄ£¬Service Master Key´æÔÚÓÚ·þÎñÆ÷ˮƽ£¬Õâ¸öÃÜÂëÊÇÔÚ°²×°SQL·þÎñÆ÷¹ý³ÌÉú³ÉµÄ£¬²¢Êܵ½Êý¾Ý±£»¤API£¨DPAPI£©µÄ±£»¤¡£Í¨¹ýһЩT-SQLÓï¾ä£¬Äã¿ÉÒÔ½«Service Master Keyת´¢µ½Ò»¸öÎļþÀȻºó´ÓÎļþÀﻹԭ¡£

    Database Master Key´æÔÚÓÚÊý¾Ý¿âˮƽ£¬±ØÐëÊÇÓɹÜÀíÔ±À´´´½¨¡£Ëü¿ÉÒÔͨ¹ý¿ÚÁî»òService Master KeyÀ´¼ÓÃÜ¡£±í3ÏÔʾÁË´´½¨Database Master KeyµÄ·½·¨¡£


    Q5gP9[t

    ±í3

    CREATE MASTER KEY ENCRYPTION BY PASSWORD='p@ssw0rd1'

    µ±Äã´´½¨ÁËDatabase Master Keyºó£¬½«³öÏÖÒÔÏÂÑ¡Ï

    l Encryption with a symmetric key

    l Encryption with an asymmetric key

    l Encryption with a certificate

    Äã¿ÉÒÔʹÓÃT-SQLÓï¾äCREATE SYMMETRIC KEYÀ´´´½¨¶Ô³ÆÃÜÂë¡£¿Éͨ¹ý¿ÚÁî»ò´æ´¢ÔÚsys.symmetric_keysÖеÄDatabase Master KeyÀ´¼ÓÃÜ¡£¶ÔÓÚ¶Ô³ÆÃÜÂ룬Äã±ØÐëÔÚµÚÒ»²½ÖÐʹÓÃOPEN KEY Óï¾ä´ò¿ªËü£¨Õâ°üÀ¨½âÃܹý³Ì£©£¨¼ûͼ6£©¡£ÔÚÕâÖ®ºó£¬Äã¿ÉÒÔ°´ÕÕ×Ô¼ºµÄÒâÔ¸¼ÓÃÜ¡£

    Ïê½â΢ÈíSQL 2005µÄ°²È«²ßÂÔ

    ͼ6

    ¶Ô³ÆÃÜÂëµÄºÃ´¦ÔÚÓÚËüµÄÐÔÄÜ£¬ËüµÄÔËÐÐËٶȱȲ»¶Ô³ÆÃÜÂë¿ì1,000-10,000±¶¡£ËüµÄȱµãÊǼÓÃܺͽâÃÜʹÓõÄÊÇͬһ¸öÃÜÂ룬˫·½¶¼±ØÐëÖªµÀ¸ÃÃÜÂë¡£Äã¿ÉÒÔͨ¹ýCREATE ASYMMETRIC KEYÓï¾ä´´½¨²»¶Ô³ÆÃÜÂ룬²»¶Ô³ÆÃÜÂëÒ²¿ÉÒÔͨ¹ý¿ÚÁî»òDatabase Master KeyÀ´¼ÓÃÜ¡£

    ±í4ÏÔʾÁË´´½¨²»¶Ô³ÆÃÜÂëµÄ·½·¨¡£


    Q5gP9[t

    ±í4

    Listing 4

    -- Encryption with a password

    CREATE ASYMMETRIC KEY MyKeyName AUTHORIZATION User1

    WITH ALGORITHM = RSA_512

    ENCRYPTED BY PASSWORD = 'p@ssw0rd1'


    Q5gP9[t

    -- Encryption with the database master key

    CREATE ASYMMETRIC KEY MyKeyName AUTHORIZATION User1

    WITH ALGORITHM = RSA_512


    Q5gP9[t

    ²»¶Ô³ÆÃÜÂëͨ³£´¢´æÔÚsys.asymmetric_keysÖУ¬´´½¨ÃÜÂëºó£¬Äã¿ÉÒÔͨ¹ýEncryptByAsmKeyÀ´¸øÊý¾Ý¼ÓÃÜ£¬Ê¹ÓÃDecryptByAsmKey À´¸øÊý¾Ý½âÃÜ¡£±í5ÏÔʾÁ˼ÓÃܺͽâÃܵŦÄܵÄÓ÷¨¡£


    Q5gP9[t

    ±í5

    DECLARE @EncryptedStuff varchar(1000)

    SELECT @EncryptedStuff = EncryptByAsmKey(AsymKey_ID('MyKeyName'),

    'My secret message')

    SELECT @EncrytedStuff

    SELECT CAST(DecryptByAsmKey(AsymKey_ID('MyKeyName'), €EncryptedStuff)

    AS VARCHAR)


    Q5gP9[t

    ×îºó£¬Äã¿ÉÒÔʹÓÃÖ¤ÊéÀ´¼ÓÃÜÊý¾Ý£¬¿ÉÒÔͨ¹ý½«ÒÑÓÐÖ¤ÊéÊäÈëµ½Êý¾Ý¿â·þÎñÆ÷»òͨ¹ýT-SQLÓï¾äCREATE CERTIFICATE À´´´½¨Ò»¸öÐÂÖ¤Êé¡£Ö¤ÊéÒ²¿ÉÒÔͨ¹ý¿ÚÁî»òDatabase Master KeyÀ´¼ÓÃÜ¡£±í6ÏÔʾÁËÕâÁ½ÖÖ¿ÉÄܵķ½·¨¡£


    Q5gP9[t

    ±í6

    -- Encryption with a password

    CREATE CERTIFICATE MyCertificateName AUTHORIZATION User1

    WITH Subject 'My Subject',

    EXPIRY_DATE = '12/31/2006',

    ENCRYPTION_PASSWORD = 'p@ssw0rd1'


    Q5gP9[t

    -- Encryption with the database master key

    CREATE CERTIFICATE MyCertificateName AUTHORIZATION User1

    WITH Subject 'My Subject'


    Q5gP9[t

    ¼ÓÃÜÌØÐÔÏà¹ØµÄÀý×ÓÒ²¿ÉÒÔ´ÓÎļþ Encryption.sqÀïÏÂÔØ¡£


    Q5gP9[t



    а²È«¹¦ÄÜ


    Q5gP9[t

    ÕýÈçÄãÔÚÕâЩÀý×ÓÖп´µ½µÄ£¬SQL ·þÎñÆ÷2005 ÌṩÁËÐí¶àÐµİ²È«¹¦ÄÜ¡£ºÁÎÞÒÉÎÊ£¬¼ÓÃܹ¦ÄÜÊÇ×î´óµÄ¸Ä½ø¡£Service Master KeyÒ²ÊÇÒ»¸ö·Ç³£ÓÐÓõÄÐ¡ÌØÐÔ¡ª¡ªÄã²»±ØÕƹÜ×Ô¼ºµÄÃÜÂ룬SQL·þÎñÆ÷ÌæÄãÕÆ¹Ü¡£

    81666
  • ·µ»ØÒ³Ãæ¶¥¶Ë
  • ÉÏһƪ£º½«AccessÊý¾Ý¿âÒÆÖ²µ½SQL Server 7.0
  • ÏÂһƪ£ºSQL Server 2005£ºÏòϵͳ±í˵ÔÙ¼û
  • ·µ»ØÉÏÒ»Ò³ ´òÓ¡±¾ÎÄ ¼ÓÈëÊÕ²Ø
  • Ò³Ãæ×îºó¸üÐÂʱ¼ä£º2010Äê3ÔÂ10ÈÕ