Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

HAS_DBACCESS () - पता लगाएं कि क्या कोई उपयोगकर्ता SQL सर्वर में किसी डेटाबेस तक पहुंच सकता है

SQL सर्वर में एक HAS_DBACCESS() है फ़ंक्शन जो इस बारे में जानकारी देता है कि उपयोगकर्ता के पास निर्दिष्ट डेटाबेस तक पहुंच है या नहीं।

सिंटैक्स

वाक्य रचना इस प्रकार है:

HAS_DBACCESS ( 'database_name' )

फ़ंक्शन 1 लौटाता है यदि उपयोगकर्ता के पास डेटाबेस तक पहुंच है, 0 यदि उपयोगकर्ता के पास डेटाबेस तक पहुंच नहीं है, और NULL यदि डेटाबेस का नाम मान्य नहीं है।

यह 0 लौटाता है यदि डेटाबेस ऑफ़लाइन है या संदिग्ध है, और यह 0 लौटाता है यदि डेटाबेस एकल-उपयोगकर्ता मोड में है और डेटाबेस किसी अन्य उपयोगकर्ता द्वारा उपयोग में है।

उदाहरण

प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:

SELECT HAS_DBACCESS('KrankyKranes');

परिणाम:

1

इस मामले में, 1 लौटा दिया गया था, जिसका अर्थ है कि उपयोगकर्ता के पास KrankyKranes . तक पहुंच है डेटाबेस।

अस्तित्वहीन डेटाबेस

यदि डेटाबेस मौजूद नहीं है, तो परिणाम NULL है :

SELECT HAS_DBACCESS('Oops');

परिणाम:

NULL

सभी डेटाबेस जांचें

SQL सर्वर इंस्टेंस में सभी डेटाबेस तक पहुँच की जाँच करने के लिए हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं:

SELECT 
    name AS DB,
    HAS_DBACCESS(name) AS HasDBAccess
FROM sys.databases;

परिणाम:

+-----------------------+---------------+
| DB                    | HasDBAccess   |
|-----------------------+---------------|
| master                | 1             |
| tempdb                | 1             |
| model                 | 1             |
| msdb                  | 1             |
| Music                 | 1             |
| KrankyKranes          | 1             |
| Test                  | 1             |
| WideWorldImporters    | 1             |
| World                 | 1             |
| DomainDispute         | 1             |
| PetHotel              | 1             |
| StereoSystems         | 1             |
| NarrowNationExporters | 1             |
+-----------------------+---------------+

उस स्थिति में, मेरे पास सभी डेटाबेस तक पहुंच थी।

जब मैं कम डेटाबेस तक पहुंच वाले उपयोगकर्ता के रूप में क्वेरी चलाता हूं तो यहां क्या होता है:

SELECT 
    name AS DB,
    HAS_DBACCESS(name) AS HasDBAccess
FROM sys.databases;

परिणाम:

+-----------------------+---------------+
| DB                    | HasDBAccess   |
|-----------------------+---------------|
| master                | 1             |
| tempdb                | 1             |
| model                 | 0             |
| msdb                  | 1             |
| Music                 | 0             |
| KrankyKranes          | 0             |
| Test                  | 1             |
| WideWorldImporters    | 0             |
| World                 | 0             |
| DomainDispute         | 0             |
| PetHotel              | 0             |
| StereoSystems         | 0             |
| NarrowNationExporters | 0             |
+-----------------------+---------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सीलिंग () SQL सर्वर में उदाहरण

  2. तीन आसान SQL सर्वर प्रदर्शन जीतता है

  3. SQL सर्वर प्रतिकृति सेट करना और कॉन्फ़िगर करना

  4. जब डाउनलोड करने के लिए कोई फाइल नहीं है तो एसएसआईएस एफ़टीपी कार्य विफल होने से कैसे बचें?

  5. Dapper.NET का उपयोग करके डेटाबेस में C# सूची कैसे सम्मिलित करें?