Aracılığıyla paylaş


Veritabanı şeması oluşturma

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'te DepoMicrosoft Fabric'te SQL veritabanı

Bu makalede, SQL Server Management Studio veya Transact-SQL kullanarak SQL Server'da şema oluşturma açıklanmaktadır.

Permissions

  • Şema oluşturmak için veritabanında CREATE SCHEMA iznine sahip olmanız gerekir.

  • Oluşturulan şemanın sahibi olarak başka bir kullanıcı belirtmek için, bu işlemi gerçekleştirenin bu kullanıcı üzerinde KIMLIĞE BÜRÜN iznine sahip olması gerekir. Veritabanı sahibi olarak bir rol belirlendiğinde, kullanıcı aşağıdaki koşullardan birini sağlamalıdır: role üyelik veya rol üzerinde ALTER izni bulunması.

Şema oluşturmak için SQL Server Management Studio kullanma

  1. Nesne Gezgini'da Veritabanları klasörünü genişletin.

  2. Yeni veritabanı şemasının oluşturulacağı veritabanını genişletin.

  3. Güvenlik klasörüne sağ tıklayın, Yeni'nin üzerine gelin ve Şema'yı seçin.

  4. Şema - Yeni iletişim kutusundaki Genel sayfasında, Şema adı kutusuna yeni şema için bir ad girin.

  5. Şema sahibi kutusuna, şemaya sahip olacak veritabanı kullanıcısının veya rolünün adını girin. Alternatif olarak, Arama Rolleri ve Kullanıcıları iletişim kutusunu açmak için Ara'yı seçin.

  6. Tamam'ı seçin.

Uyarı

Azure SQL Veritabanı veya AzureSynapse Analytics'e karşı SSMS kullanarak şema oluşturuyorsanız bir iletişim kutusu görüntülenmez. Oluşturulan Şema Şablonu Oluştur T-SQL Deyimini çalıştırmanız gerekir.

Şema - Yeni iletişim kutusu iki ek sayfada da seçenekler sunar: İzinler ve Genişletilmiş Özellikler.

  • İzinler sayfasında, tüm olası güvenlik nesneleri ve oturum açma için verilebilen bu güvenlik nesneleri üzerindeki izinler listelenir.

  • Genişletilmiş özellikler sayfası, veritabanı kullanıcılarına özel özellikler eklemenize olanak tanır.

Şema oluşturmak için Transact-SQL kullanma

  1. Nesne Gezgini'nde Veritabanı Motoru'nun bir örneğine bağlanın.

  2. Standart araç çubuğunda, Yeni Sorgu'yu seçin.

  3. Aşağıdaki örnek adlı Chainsbir şema oluşturur ve ardından adlı Sizesbir tablo oluşturur.

    CREATE SCHEMA Chains;
    
    GO
    
    CREATE TABLE Chains.Sizes
    (
        ChainID INT,
        width DECIMAL (10, 2)
    );
    
  4. Tek bir deyimde daha fazla seçenek gerçekleştirilebilir. Aşağıdaki örnek, Joe tarafından oluşturulan ve NineProngs tablosunu içeren Sprockets şemasını oluşturur. deyimi için verir ve öğesini reddeder SELECTBob.SELECTJohn

    CREATE SCHEMA Sprockets
        AUTHORIZATION Joe;
    GO
    
    CREATE TABLE NineProngs
    (
       source INT,
       cost INT,
       partnumber INT
    );
    GO
    
    GRANT SELECT
       ON SCHEMA::Sprockets TO Bob;
    GO
    
    DENY SELECT
       ON SCHEMA::Sprockets TO John;
    GO
    
  5. Geçerli veritabanındaki şemaları görüntülemek için aşağıdaki deyimi yürütür:

    SELECT *
    FROM sys.schemas;
    

Sınırlamalar ve kısıtlamalar

  • Yeni şema aşağıdaki veritabanı düzeyi sorumlularından birine aittir: veritabanı kullanıcısı, veritabanı rolü veya uygulama rolü. Bir şema içinde oluşturulan nesneler şemanın sahibine aittir ve içinde sys.objects olan NULLprincipal_id'e sahiptir. Şema içi nesnelerin sahipliği herhangi bir veritabanı düzeyindeki sorumluya aktarılabilir, ancak şema sahibi her zaman şema içindeki nesneler üzerinde CONTROL iznini korur.

  • Nesne sahibi olarak geçerli bir etki alanı sorumlusu (kullanıcı veya grup) belirtirseniz, veritabanı nesnesi oluşturulurken etki alanı sorumlusu veritabanına şema olarak eklenir. Yeni şema bu etki alanı sorumlusuna aittir.