PDA

View Full Version : حق دسترسی



Ali_M.Eghbaldar
چهارشنبه 20 آبان 1388, 11:51 صبح
با سلام به همه دوستان برنامه نویس
می دونم احتمال خیلی زیاد سوالم قبلا به طوری مطرح شده . چند بار هم جستجو کردم ولی چیزی خاصی
پیدا نکردم و چون کارم فوریه دیگه ناچار شدم یه پست بزارم
من برنامه تحت وب نوشتم که تو سیستم خودم (local) هیچ مشکلی نداره منظورم از لحاظ کا ربا بانکه یعنی
(select,insert,update,delete,….) ولی وقتی رو Host میزارمش همه کار می کنه الا Insert .
هر طوریم که فکرش کنید امتحان کردم هم کد درج یصورت دستی (کدی) و بصورت Dataset.xsd امتحان کردم
با هر روشی خطـــــــــــــــآ دارم و 90% مطمئن هستم که اشکال از حق دسترسی User است تمام سطح دسترسی ها بهش دیتابیس دادم بعد UPLOAD کردم ولی بازم خطا
چی کار کنم؟
Host هم پنلش Helm
بانک هم Microsoft SQL Server 2000
خواهش می کنم دقیق کمکم کنید.ممنون

mehdi.mousavi
چهارشنبه 20 آبان 1388, 12:11 عصر
با سلام به همه دوستان برنامه نویس می دونم احتمال خیلی زیاد سوالم قبلا به طوری مطرح شده . چند بار هم جستجو کردم ولی چیزی خاصی پیدا نکردم و چون کارم فوریه دیگه ناچار شدم یه پست بزارم من برنامه تحت وب نوشتم که تو سیستم خودم (local) هیچ مشکلی نداره منظورم از لحاظ کا ربا بانکه یعنی
(select,insert,update,delete,….) ولی وقتی رو Host میزارمش همه کار می کنه الا Insert .
هر طوریم که فکرش کنید امتحان کردم هم کد درج یصورت دستی (کدی) و بصورت Dataset.xsd امتحان کردم با هر روشی خطـــــــــــــــآ دارم و 90% مطمئن هستم که اشکال از حق دسترسی User است تمام سطح دسترسی ها بهش دیتابیس دادم بعد UPLOAD کردم ولی بازم خطا چی کار کنم؟ Host هم پنلش Helm بانک هم Microsoft SQL Server 2000 خواهش می کنم دقیق کمکم کنید.ممنون

سلام.
چه خطایی می گیرید؟

پاورقی: جای اینهمه توضیح، پیام خطا رو بنویسید!

Ali_M.Eghbaldar
چهارشنبه 20 آبان 1388, 12:21 عصر
اينم خطاش:


A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server

A.S.Roma
چهارشنبه 20 آبان 1388, 12:48 عصر
tفکر می کنم دیتابیستون ReadOnly هست ... .
تنظیمات User از SQL Server رو چک کنید.

Ali_M.Eghbaldar
چهارشنبه 20 آبان 1388, 12:57 عصر
اگه Read-Only بود که تو سیستم خودمم نمی تونستم درج کنم نه چک کردم تیک نداره

mehdi.mousavi
چهارشنبه 20 آبان 1388, 12:58 عصر
اينم خطاش:


A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server


سلام.
همونطور که حدس میزدم، این پیام ربطی به "حق دسترسی" نداره!

لطفا فایل Web.Config اتون رو هم اینجا قرار بدید. میخوام مطمئن بشم که از یک Connection String واحد برای کلیه عملیات DAL استفاده می کنید، چون عنوان کردید که DELETE و UPDATE کار میکنن بنابراین حدس اول من این هستش که شما از چند تا Connection String برای متصل شدن به بانک استفاده می کنید و در حالتیکه عمل INSERT رو انجام میدید، از Connection String ای استفاده می کنید که درست Configure نشده!

Ali_M.Eghbaldar
چهارشنبه 20 آبان 1388, 13:22 عصر
<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>

<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectio nGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHa ndlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSecti onGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializatio nSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSe ction, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationSe rviceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSecti on, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>

<appSettings/>
<connectionStrings>
<add name="asnConnectionString" connectionString="Data Source=sql.eghbaldar.com;Initial Catalog=asn;User ID=user;Password=pass"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
Visual Basic options:
Set strict="true" to disallow all data type conversions
where data loss can occur.
Set explicit="true" to force declaration of all variables.
-->
<compilation debug="false" strict="false" explicit="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<pages>
<namespaces>
<clear />
<add namespace="System" />
<add namespace="System.Collections" />
<add namespace="System.Collections.Generic" />
<add namespace="System.Collections.Specialized" />
<add namespace="System.Configuration" />
<add namespace="System.Text" />
<add namespace="System.Text.RegularExpressions" />
<add namespace="System.Linq" />
<add namespace="System.Xml.Linq" />
<add namespace="System.Web" />
<add namespace="System.Web.Caching" />
<add namespace="System.Web.SessionState" />
<add namespace="System.Web.Security" />
<add namespace="System.Web.Profile" />
<add namespace="System.Web.UI" />
<add namespace="System.Web.UI.WebControls" />
<add namespace="System.Web.UI.WebControls.WebParts" />
<add namespace="System.Web.UI.HtmlControls" />
</namespaces>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows" />
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
-->
<customErrors mode="Off" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>


<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>

</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4"
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
<!--
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0. It is not necessary for previous version of IIS.
-->
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule" />
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory" />
<remove name="ScriptHandlerFactoryAppServices" />
<remove name="ScriptResource" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</handlers>
</system.webServer>

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>


خودم customerror off کردم که خطا رو ببنم

mehdi.mousavi
چهارشنبه 20 آبان 1388, 13:53 عصر
سلام.
بنظر میرسه که فایل Config هم درست هستش. آیا هنگامیکه عمل Insert با خطا مواجه میشه، شما می تونید از تو یک Session دیگه، به بانک متصل بشید؟ آیا Connection ها رو پس از انجام عملیات مزبور بدرستی می بندید؟ میتونید میزان حافظه مصرفی روی سرور رو در لحظه وقوع این خطا، مشاهده کنید؟ آیا Log File های SQL Server رو برای رفع مشکل بررسی کرده اید؟ آیا Owner بانک، کاربری هستش که در Connection String خودتون ذکر کردید، یا نه، برای عملیات CRUD بطور جداگانه Permission ها رو تعیین کرده اید؟

لطفا به این سایت سری بزنید. شاید کمکتون کنه. (http://social.msdn.microsoft.com/forums/en-US/sqldataaccess/thread/c488cf76-2515-440f-b3f8-9cfad689c5b6/) همینطور این سایت (http://social.msdn.microsoft.com/forums/en-US/sqlreportingservices/thread/2a8f2e64-74cf-46f2-b2be-bbb08b1502cb/)...

Ali_M.Eghbaldar
چهارشنبه 20 آبان 1388, 14:16 عصر
میتونید میزان حافظه مصرفی روی سرور رو در لحظه وقوع این خطا، مشاهده کنید؟
آیا Log File های SQL Server رو برای رفع مشکل بررسی کرده اید؟
آیا Owner بانک، کاربری هستش که در Connection String خودتون ذکر کردید، یا نه
، برای عملیات CRUD بطور جداگانه Permission ها رو تعیین کرده اید؟


غیر از نطالب بالا همه رو انجام دادم در مورد مطالب بالا میشه تک تک نوضیح بدبد؟
یعنی شما میگید از سطح دسترسی نیست؟
دیگه دارم دیونه میشم.

mehdi.mousavi
چهارشنبه 20 آبان 1388, 15:09 عصر
میتونید میزان حافظه مصرفی روی سرور رو در لحظه وقوع این خطا، مشاهده کنید؟
آیا Log File های SQL Server رو برای رفع مشکل بررسی کرده اید؟
آیا Owner بانک، کاربری هستش که در Connection String خودتون ذکر کردید، یا نه
، برای عملیات CRUD بطور جداگانه Permission ها رو تعیین کرده اید؟

غیر از نطالب بالا همه رو انجام دادم در مورد مطالب بالا میشه تک تک نوضیح بدبد؟
یعنی شما میگید از سطح دسترسی نیست؟
دیگه دارم دیونه میشم.

من اولش گفتم نیست، اما به یکباره یادم افتاد شاید شما توی Permission های جداول برای عملیات CRUD بطور جداگانه در SQL Server دست برده باشید و در نتیجه، حرفم رو پس میگیرم. این ایراد ممکنه در شرایط زیادی رخ بده. در حال حاضر باید روی پیدا کردن دلیل این مساله متمرکز بشید. مواردی هم که در فوق من به اونها اشاره کردم، به این دلائل بوده:


گفتم میزان حافظه مصرفی روی سرور در لحظه وقوع این مشکل رو ببینید. زیرا خطای مزبور ممکنه هنگام Excessive Pressure روی SQL Server رخ بده. وقتی حافظه رو نگاه کنید و Handle ها رو دنبال کنید، عموما می تونید Hint ای از مشکل اصلی بدست بیارید. اما ظاهرا سرور شما Dedicated نیستش که بتونید این عمل رو انجام بدید.
پرسیدم آیا Log File های SQL Server رو بررسی کرده اید یا خیر. زیرا Log File ها عموما Hint های بسیار مناسبی برای پیدا کردن مشکل اصلی به برنامه نویس میدن. اینکه در این شرایط SQL Server خودش Restart میشه یا نه و ... میتونه کمک بسزایی در یافتن مشکل اصلی کنه.
پرسیدم آیا Owner بانک همون کاربری هستش که در web.config توسط اون به بانک متصل میشید یا خیر. زیرا اگر کاربری که در Connection String تعیین کرده اید، Owner (مالک) بانک هم باشه، دیگه نیازی به تعیین دونه به دونه Permission ها برای چهار عمل CRUD نیستید و میتونید کلیه تنظیماتی که انجام داده اید رو از بین ببرید. چون Owner بانک هستید و به بانک Full Access دارید.

لازم نیست دیوونه بشید. من چند سال پیش جایی کار میکردم که بعد از Deploy کردن برنامه ام، به یک Bug برخوردم و اون این بود که بعد از حدود یک روز، سیستم به یکباره Restart میشد. من یک ماه تمام هر روز از ساعت 8 صبح تا 8 شب تمام جزییات کار رو بررسی کردم تا در نهایت، پی به اشکال کار بردم. تازه برنامه ای که من در موردش صحبت می کنم Mission Critical بود و قادر نیودم تا هر کاری که مایل هستم انجام بدم و ....

در هر حال، منظورم اینه که باید حوصله کنید. یک Check List درست کنید و به ترتیب بنویسید که چه کارهایی انجام دادید و روند کار رو اگر لازمه، 100 دفعه دیگه بررسی کنید تا پی به ایراد ببریبد. بهتون توصیه می کنم که سروری برای شبیه سازی سرور Host خودتون راه اندازی کنید (توسط Virtual Box یا دیگر ابزارهای VM). اینطوری زمان پی بردن به ایراد رو کوتاه می کنید.

موفق باشید.

Ali_M.Eghbaldar
چهارشنبه 20 آبان 1388, 16:46 عصر
mehdi6577
واقعا ممنونم هر چند نتیجه ای نداد ولی امید داشت خیلی ممنونم
از دوستان کسی چیزه دیگه به ذهنش نمی رسه؟
من منتظرم.