چطور در Hibernate برای اتصال به sql server کانفیگ انجام دهیم

+1 رأی
میانگین بازدید روزانه 0.14184 بازدید

برای اتصال به پایگاه داده در sql server با استفاده از hibernate  کانفیگ زیر رو انجام دادم. ولی در اتصال به پایگاه داده با مشکل مواجه شدم. برای اتصال از windows authenication استفاده کردم. 

  

   <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
                <prop key="cache.use_query_cache">true</prop>
                <prop key="cache.use_second_level_cache">true</prop>
                <prop key="hibernate.connection.driver_class">
                    com.microsoft.sqlserver.jdbc.SQLServerDriver
                </prop>
                <prop key="hibernate.connection.url">jdbc:microsoft:sqlserver://localhost;databaseName=BOOKSTORE;integratedSecurity=true</prop>
                <prop key="hibernate.connection.username">username
                </prop>
                <prop key="hibernate.connection.password">password
                </prop>
                <prop key="show_sql">true</prop>
                <prop key="hibernate.c3p0.min_size">5</prop>
                <prop key="hibernate.c3p0.max_size">20</prop>
                <prop key="hibernate.c3p0.timeout">300</prop>
                <prop key="hibernate.c3p0.max_statements">50</prop>
                <prop key="hibernate.c3p0.idle_test_period">3000</prop>
            </props>
   </property>
سوال 3 سال قبل در تالار برنامه نویسی توسط hadi20 (15 امتیاز)
ویرایش 3 سال قبل توسط Saeed Zarinfam

1 جواب

0 رأی

sql server دو جور authentication mode داره. یعنی کاربرها از 2 طریق می تونن خودشون را بشتاسونن. یکی از طریق همان username و pass لاگین به ویندوز NT که بهش می گن


Windows Authentication

و دیگری یه user , pass اختصاصی هست که تو sql server درست میشه. به این میگن


SQL Server Authentication

درمورد اول معلومه که یوزر باید پشت کامپیوتر کنترلر دامین نشسته باشه یا از یه ایستگاه کاری بهش لاگین کرده باشه، فکر کنم حتی یوزر هایی که Dial-Up به دامین لاگین می کنن هم می تونند از Windows Authentication استفاده کنن.
برای مورد دوم کافیه user,pass خودتون رو به سرور پاس کنین. در مواقعی که از راه دور یا از سیستم غیر ویندوز NT (مثل 98، مثل یه وب هاست یونیکس) به سرور وصل میشین مجبورین از SQL Server Authentication استفاده کنین. و خوب اگه سرور شما روی 98 نصبه که اصلا Windows Authentication ممکن نیست.

Windows Authentication را بهش می گن trusted connection چون sql server به windows اعتماد می کنه و هر کسی را که ویندوز بگه credential هاش درست هست را اجازه لاگین به اس کو ال سرور هم بهش می ده.

برای هر sql server نصب شده می تونین بگین که از Windows Authentication استفاده کنه یا هر دو(mixed mode). راهی نیست که Windows Authentication را از کار بندازین.

برای Windows Authentication، هر کاربر که روی سیستم NT لاگین می کنه، اگه admin باشه خود به خود نقش sysadmin روی sql server پیدا می کنه. اما برای بقیه کاربرهای domain باید یه لاگین براشون تو sql server بسازین تا بتونن لاگین کنن.

مزیت Windows Authentication، ایمنی بالا و سادگی مدیریت مجوز های کاربرها است.

اگه نمی خواهید از SQL Server Authentication استفاده کنین، حتما موقع نصب یه password براش تعیین کنین و بعدا SQL Server Authentication را از کار بندازین.

منبع

×××

روش  Windows Authentication 
در مدل فوق ، اين امکان برای يک کاربر فراهم خواهد شد که با استفاده از يک Account  ويندوز به بانک اطلاعاتی مرتبط گردد . خصلت امنيتی شبکه برای کاربر در زمان ورود به شبکه ايجاد می گردد . زمانيکه يک کاربر شبکه سعی در ارتباط با بانک اطلاعاتی سرويس دهنده SQL می نمايد ،عمليات تائيد وی آغاز و در ادامه بر اساس سياست های امنيتی ورود به شبکه که قبلا" برای وی تعريف و تنظيم شده است ، امکان دستيابی وی به بانک اطلاعاتی محقق و يا با درخواست وی بدلايل امنيتی مخالفت خواهد شد . در چنين حالتی ضرورتی به يک Login مجدد ( ورود نام و رمز عبور توسط کاربر) وجود نخواهد داشت . استفاده از روش فوق ، بمنظور ارتباط با بانک اطلاعاتی دارای مزايای زير است :

معتبرسازی ايمن بهمراه رمزنگاری رمزهای عبور
Auditing
تاريخ سررسيد رمز عبور
تعريف حداقل طول رمزعبور
غير فعال شدن ( قفل نمودن ) رمز عبور پس از انجام چندين تلاش نافرجام جهت ورود به شبکه


نکته : با توجه به اينکه کاربران و گروههای ويندوز ، صرفا" توسط ويندوز نگهداری و پشتيبانی می گردند ، سرويس دهنده SQL اطلاعات مربوط به يک گروه کاربران را در زمان اتصال به بانک اطلاعاتی می خواند . در صورتيکه تغييراتی در رابطه با مجوزهای دستيابی برای يک کاربر متصل شده ايجاد گردد ، تغييرات ايجاد شده  در زمان آتی  که کاربر به سرويس دهنده SQL مرتبط می گردد ؛ در نظر گرفته  شده و متناسب با تغييرات ايجاد شده با کاربر برخورد خواهد شد .

منبع

جواب 3 سال قبل توسط saeedd (2,147 امتیاز)

سوال های مشابه

0 رأی
1 جواب میانگین بازدید روزانه 0.08147 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.72192 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.3434 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.58847 بازدید
سوال 3 سال قبل در تالار برنامه نویسی توسط mirhosseini (39 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.67997 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.741,376 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.4891 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.08113 بازدید
+1 رأی
0 جواب میانگین بازدید روزانه 0.07154 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.06120 بازدید
کانال تلگرام جواب یاب
...