Makale numarası: 308312 - Son Gözden Geçirme: 29 Mart 2007 Perşembe - Gözden geçirme: 6.2 Uygulama rolleri Access projelerini ve SQL Server 2000 Desktop Edition ile nasıl kullanılır
Gelişmiş: Uzman kodlama, birlikte çalışabilirlik ve çok kullanıcılı becerileri gerektirir. Bu makalede, yalnızca bir Microsoft Access projesine (.adp) uygulanır. Bu makalenin Microsoft Access 2000 sürümü için bkz: 318816
(http://support.microsoft.com/kb/318816/
)
. ÖzetBu makalede, Microsoft SQL Server uygulama rolleri bir Microsoft Access projesi (ADP) kullanmak için geçici çözümler yetenekleri ve sınırlamaları açıklanmaktadır. Daha fazla bilgiSQL Server'da veritabanı rolleri daha kolay yönetim izinleri veritabanında oluşturabilirsiniz. Tek tek izinler her kullanıcı için ayrı vermek yerine, bunları aynı normal veritabanı rolünün üyeleri yapıp sonra da veritabanı rolüne izinleri atama aynı izin gereksinimleri olan kullanıcıların gruplandırabilirsiniz. Belirli bir izin açıkça başka bir yerde engellendi sürece, üye kullanıcıların veritabanı bu role verilmiş izinlere kazanacağı. Normal bir veritabanı rollerine kendi ad hoc sorguları veya bir veritabanı için güncelleştirmeler gerçekleştirmek kullanıcıların istediğiniz durumlar için çok yararlı olmasına karşın, bunlar her zaman uygun değil. Bazen, kullanıcıların yalnızca belirli bir uygulama kullanıyor olmaları ve uygulama dışındaki verileri görüntülemek veya değiştirmek istediğiniz bazı izinleri olması isteyebilirsiniz. Yalnızca bir SQL Server kullanıcı hesabı için gerekli izinleri vermek için bu geçici için kullanılan bir yöntem var. Gerçek kullanıcılar, bir veritabanına bağlanmak için ancak değil görmek ya da tüm verileri değiştirmek için gerekli izinlere sahip. Bir kullanıcı, tek tek kullanıcı hesabıyla veritabanına bağlandıktan sonra ADP sonra program aracılığıyla izinlerine sahip kullanıcı hesabının kimlik bilgilerini kullanarak yeniden. Bu etkin olabilir, ancak bu veritabanındaki kullanıcılar arasında ayrım yapmak için veya bir kullanıcı belirli bir gerçekleştirilecek belirlemek için izin vermiyor. Uygulama rolleri Bu kısıtlamaya bir geçici çözüm bulmak için tasarlanmıştır. Normal bir veritabanı rollerini, farklı olarak, uygulama rolleri üyeleri kendilerini yetkiniz yok. Bunun yerine, kullanıcılar, bir SQL Server'da oturum açmak ve kendi kimlik bilgilerini kullanarak bir veritabanına bağlanabilir. Bu noktada, bir uygulama rolünün güvenlik bağlamını programsal olarak varolan bir bağlantıyı sp_setapprole saklı yordamını kullanarak uygulanabilir. SQL Server'da, tek tek kullanıcılar hala olarak tanır, ancak belirli bir bağlantı içinde kullanılabilen izinleri uygulama rolünün izinlerde sınırlıdır. Kullanıcının tek tek izinleri olup olmadığını, daha az ya da daha yeni artık kabul edilir. Bir uygulama rol oluşturmaMicrosoft Access projeleri tüm görsel tasarım araçları, SQL Server güvenlik nesneleri gibi uygulama rolleri oluşturma hakkınız yok. Microsoft SQL Server veya Microsoft Office XP Developer normal sürümüyle uygulama rolünü oluşturma ve bu izinleri atamak için bulunan istemci araçları kullanmanızı önerir. Ancak, oluşturabileceğiniz hala uygulama rolünü ve, gerekli izinlere program aracılığıyla gelen bir ADP Transact-SQL (T-SQL) kullanarak verin. SQL Server güvenliği, tam bir tartışmayı ek bu makalenin kapsamı dışındadır olsa da bilgi SQL Server çevrimiçi bulunabilir aşağıdaki adımları program aracılığıyla bir uygulama rol oluşturmak ve yeni rolün tablo Seç izinleri vermek nasıl göster:
Uygulama rolünü uygulamaya koymaAna olası sorun Access projelerinde uygulama rollerini kullanıyorsanız, Access SQL Server'a üç bağlantı çeşitli görevler ele kullanmasıdır. Ideal olarak, tüm proje için bir uygulama rol uygulamak için tüm üç bağlantı bağlamında sp_setapprole yürütmek gerekir. Her bir bağlantı tarafından işlenen nesneleri aşağıdaki gibidir:
Bağlantıları # 2 ve 3 oldukça kolay erişilebilir, ancak # 1 bağlantı bağlamında saklı yordamı yürütmek için kullanılabilir bir yöntemi yoktur. Neyse ki, bu bağlantıyı üç en az önemli olan ve kolayca geçici veritabanı nesnelerini, yerleşik Veritabanı penceresinde güvenmek yerine işlemek için kendi kullanıcı arabirimi (örneğin, bir geçiş panosu türü formu) oluşturarak çalıştıysa. Bir uygulama rol bağlantıları # 2 ve 3 karşı uygulama göstermek için Northwind örnek Access projesi aşağıdaki adımları kullanın:
Tasarım gereği, Access nesneleri yalnızca, kullanıcı en az bir seçim veya izinleri Yürüt Veritabanı penceresinde görüntüler. Access, <a1>Bağlantı</a1> # 1 hangi nesnelerin kullanıcı izinlerine sahip olup olmadığını belirlemek için kullanır. Uygulama uygulandıktan sonra bağlantıları # 2 ve 3, veritabanı penceresini role karşın, kullanıcı artık tüm nesneler için izinleriniz veya izinleriniz görüntülenmez, daha fazla nesne için daha önce olduğu nesneler aynı görüntülenmeye devam eder. Bu, Veritabanı penceresinde kullandığınızda beklenmedik davranışa neden olabilir. TNewTable tablo açıldığında, örneğin, "kullanıcı düzenlemek ve kayıtları eklemek için gerekli izinlere sahip olduğunu göründüğü". Ekleme yeni kayıt simgesi tablonun altındaki etkinleştirilir ve kullanıcı kaydını düzenleme moduna olduğu. Aksi halde, düzenleme veya hata iletisine neden ekleme, tamamlamaya çalışın kadar belirtmek için herhangi bir görsel clue görmezsiniz. Erişim, gerçekte aksi halde, izinlere sahip olduğunu anladığı. En geçerli çözümü kullanıcı için özel bir arabirim sağlamak için Veritabanı penceresinde yararlanmayı ise. Bir geçiş panosu türü kullanıcı arabirimini kullanarak, tam olarak hangi kullanıcının erişimi olan nesneleri de denetleyebilirsiniz. Diğer sınırlamalara ve güvenlikle ilgili önemli noktalarAlt formlar çalışmıyorFarklı olarak, diğer veritabanı nesneleri ile Access her zaman aynı bağlantı alt formun veri kaynağını almak için kullanmaz. Access, genellikle (ancak her zaman değil) yalnızca alt recordset'i tanıtıcı veya alt form ana forma bağlayan bağlantı alanı veri almak için SQL Server'a yeni bir bağlantı oluşturur. Uygulanan uygulama rolünü bu yeni bir bağlantı olmadığından, veritabanı nesnesi için açık izinleriniz varsa, izinler bir hata oluşturulabilir. Ne yazık ki, bu uygulama rolleri uygulandığında, ilişkili bir alt form kullanmak için güvenilir bir yol olduğu anlamına gelir. Geçici çözümü yalnızca etkin alt formlar, programlı olarak işlenen veri işleme ile tamamen ilişkisiz olmaktır. Bu en önemli sınırlaması uygulama rolleri Access'te kullanıldığında. Raporların çalışmıyor Bir tablo gibi bir nesne olması veya bir rapor veya alt raporun kayıt kaynağı olarak listelenen bir görünüm adı, Access SQL Server'dan veri almadan önce nesneyi Veritabanı penceresinde listelenip listelenmediğini denetler. Veritabanı penceresinde, uygulama rolünü uygulanmış olan bağlantı kullandığından, alttaki veri kaynağına açık izni olmayan bir hata oluşturulur. Bu soruna geçici bir çözüm bulmak için <a0></a0>, her zaman Transact-SQL deyimleri kayıt kaynağı olarak formlar ve raporlar için kullanın. Örneğin, yalnızca "ViewName" veya "Exec StoredProcedureName" yerine, yalnızca "StoredProcedureName." yerine "Select * gelen ViewName" kullanın... Bu şekilde, Access, Transact-SQL deyimlerini doğrudan SQL Server'a geçirir ve uygulama rolünün izinlerini temel verileri alır. The Public veritabanı rolü Bir uygulama rol, izinler ortak bir veritabanı rolü edinme. NorthwindCS'de varsayılan tarafından public rolünün çoğu nesneler için tam izinlere sahiptir. Bu nedenle, bir uygulama rol genellikle verimsiz olur. TNewTable tablonun "Bir uygulama rol oluşturma" bölümünde oluşturduğunuz zaman, public rolünün tablo için izin verilen ve bu tabloya daha sonra uygulama rolünü güvenlik bağlamı etkilerini gördünüz. Ancak, diğer tablolardaki public rolünün bu nesneleri için izinleri olduğundan uygulama rolünü altında herhangi bir fark göstermeyebilir. VBA Güvenlik Uygulama rolünü parolasını katıştırılmış uygulamasına adıyla adlandırılır çünkü bilgili kullanıcı uygulama rolün adını ve parolayı kaynak kodundan okuyun ve sonra başka bir uygulamadan SQL Server'a erişmek için bu bilgileri kullanın gerçekleştirebilir. Bu nedenle, kaynak kodu alanı olmayacak biçimde, bir ADE dosyasına ADP derlemek için iyi bir fikirdir. En azından bir VBA projesi parola zorlar. ReferanslarBu makalede bir Microsoft Access 2000 sürümü hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın: 318816
(http://support.microsoft.com/kb/318816/EN-US/
)
ACC2000: Nasıl uygulama rolleri Access projeleri ve SQL Server 2000 Desktop Engine (MSDE 2000) ile kullanılır GRANT hakkında daha fazla bilgi için SQL Server Books Online'da bakın. SQL Server Books Online'da aşağıdaki Microsoft Web sitesinden edinilebilir: http://www.Microsoft.com/SQL/techinfo/productdoc/2000/default.asp Bu makaledeki bilginin uygulandığı durum:
Otomatik TercümeÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir. Makalenin İngilizcesi aşağıdaki gibidir:308312
(http://support.microsoft.com/kb/308312/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukHemen Yardım AlMakale çevirileri
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Üste