DNN 5.2.0 to 5.2.1 upgrade SQLdata provider error!

Discussion in 'Third-party applications' started by realhackern, Dec 27, 2009.

Thread Status:
Threads that have been inactive for 5 years or longer are closed to further replies. Please start a new thread.
  1. Couple of days ago the DNN staff released a new ¨stable¨update 05.02.01 ...
    Here´s what it happens:

    Upgrading DotNetNuke
    Current Assembly Version: 05.02.01
    Current Database Version: 05.02.00


    Upgrade Status Report
    00:00:00.062 - Upgrading to Version: 05.02.01
    00:00:00.281 - Executing Script: 05.02.01.SqlDataProvider Error! (see 05.02.01.log for more information)
    00:00:02.172 - Executing Application Upgrades: 05.02.01 Success
    00:00:02.234 - Cleaning Up Files: 05.02.01 Success
    00:00:02.250 - Updating Config Files: 05.02.01 Success
    00:00:02.313 - Performing General Upgrades
    00:00:03.016 - Installing Optional Modules:
    00:00:03.031 - Installing Package File HTML_Community_05.02.00_Install: Success
    00:00:04.016 - Installing Optional Skins:
    00:00:04.032 - Installing Optional Containers:
    00:00:04.047 - Installing Optional Languages:
    00:00:04.047 - Installing Optional Providers:
    00:00:04.079 - Installing Package File AspNetMembershipProvider_05.02.00_Install: Success
    00:00:04.172 - Installing Package File CorePermissionProvider_05.01.01_Install: Success
    00:00:04.297 - Installing Package File DatabaseLoggingProvider_05.01.01_Install: Success
    00:00:04.376 - Installing Package File DNNMembershipProvider_05.01.03_Install: Success
    00:00:04.469 - Installing Package File DNNMenuNavigationProvider_05.01.00_Install: Success
    00:00:04.563 - Installing Package File DNNTreeNavigationProvider_05.01.00_Install: Success
    00:00:04.657 - Installing Package File FckHtmlEditorProvider_02.00.04_Install: Success
    00:00:07.908 - Installing Package File FileBasedCachingProvider_05.01.03_Install: Success
    00:00:08.048 - Installing Package File FileModuleCachingProvider_05.02.01_Install: Success
    00:00:08.486 - Installing Package File MemoryModuleCachingProvider_05.02.01_Install: Success
    00:00:08.642 - Installing Package File SchedulingProvider_05.02.01_Install: Success
    00:00:08.908 - Installing Package File SearchIndexProvider_05.01.00_Install: Success
    00:00:09.002 - Installing Package File SearchProvider_05.01.01_Install: Success
    00:00:09.095 - Installing Package File SolpartMenuNavigationProvider_05.01.00_Install: Success
    00:00:09.236 - Installing Optional AuthSystems:
    00:00:09.236 - Installing Package File LiveID_01.00.01_Install: Success
    00:00:09.471 - Installing Package File OpenID_02.00.00_Install: Success
    00:00:09.689 - Installing Optional Packages:


    Upgrade Complete
    ....

    and the log says:

    System.Data.SqlClient.SqlException: Cannot find the user 'SQL2008_user', because it does not exist or you do not have permission.
    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
    at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
    at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
    at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
    at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(SqlConnection connection, CommandType commandType, String commandText, SqlParameter[] commandParameters)
    at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters)
    at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText)
    at DotNetNuke.Data.SqlDataProvider.GrantStoredProceduresPermission(String Permission, String LoginOrRole)

    GRANT EXECUTE TO [SQL2008_user]

    ......................................................
    The DNN staff says:

    In 5.2.1 we added some defensive coding to try and ensure that the script has execution permissions when you are not using an upgradeconnectionstring or when you are not using the dbo schema. Often people setup non-standard schema configurations or use logins with some limited user permissions. In many instances these configurations will allow you to install DNN and then will manifest as an error later when other modules are installed.

    They say there is a permission isue in my database.I´ve tried to change the permissions for that user from the SQL Server Management but nothing!:confused:
    Can someone please explain to me what is happening!?
    Thanks!
     
  2. I had the same problem, made a trouble ticket, and was sent here. My question was:


    Right now, it looks like it's impossible to correctly install 5.0.2.1 with a discountASP.net SQL Server db. From tech support:

     
  3. We are stuck!

    Almost the same thing dasp.support reported back to me:

    Unfortunately we do not offer individual website programming, website design, or consulting services and we must prioritize our technical support on system/server issues that affect all our customers.

    To assist customers with programming-related, development-related, and design-related issues, we have an active online community forum.
    Please post your questions to this forum, or you may search for similar related issues. The community forum allows our
    staff and all our customers to help each other resolve their programming and design issues.


    Looks like for me that we are stuck until other notices, the dasp.net does not alow GRANT EXECUTE command for DNN, and DNN does not install inside dasp.net servers! :D Hope it is not a ¨war¨ between DNN team and DASP.NET
    But, honestly, why did DNN team had to change permissions!? Until now everything was fine.
    I´ve made a rollback to the previous version until the DNN releases something new to fix this.
     
  4. mjp

    mjp

    There's no "war" with DNN (not from our side, anyway), but that change is going to break DNN on almost every shared hosting platform.
     
  5. DNN responds...

    DNN staff responds...

    What now!? To be honest, i agree in not alowing GRANT EXECUTE, even a small module ho requests this can also exploit some other features..., but i also believe that DNN staff has the right to do what ever they want with their product. So,hope that dasp.net staff will think better and grant us DBO permissions soon or we really have to move forward to another hosting provider even if that i do not agree verry much :( ...
    But still, the best and the last solution to us all, would be that those updates are to be made by the dasp.net staff itself ;)

    I´ll make a QUOTE of this forum to the DNN forum as well in the hope that you all will see and make a decission about al this.

    Until then i wish you all HAPPY NEW YEAR!!!
     
  6. mjp

    mjp

    You do have owner permissions. Just not GRANT permissions.

    That's why no one who takes security seriously on a shared database server is going to do it.

    Best solution for you, yes. ;) But we don't install applications for customers, or make changes to customer files, etc., etc. for all the obvious reasons.

    Shared hosting has certain imitations. Those limitations are necessary to maintain stability and reliability. I'm quite sure you can find a number of shared hosts who will let you execute any SQL command you'd like. But you should really be afraid of those hosts, because the other hundreds (or thousands) of people using your database server will also have permissions that you might not want them to have.

    Your site and data are not safe with a host that will accommodate anything you ask for on a server. It's a great way to retain customers, but also a great way to put them all at risk.
     
  7. Clear and simple, security first of all!



    Nothing more true, i know what it means to have GRANT permission and this is why i agree not to alow them, but, as a client of DASP.NET i hope you all are aware of this ¨limitations¨ cause it it will limit our overall in the future and that in the end you´ll have to GRANT them.
     
  8. dmitri

    dmitri DiscountASP.NET Staff

    I am not familiar with DNN and its DB installation script, but I can make some comments on this discussion from database perspective.

    Your SQL Server Login is mapped to 'dbo' database user. This user owns 'dbo' schema and the whole database itself, meaning that you have ALL permissions on ALL objects inside your database and 'dbo' schema.

    does not make any sense. Why trying to grant something that is already granted? Moreover, the problem is not our server's restrictions. You can try to run this command on your local machine logged in as the administrator, and you will get the following message: "Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself."

    'dbo' is the default schema, and most of the people will use it. Those who decided to use other schema I believe have their reason and probably can figure out how to set the permissions back.

    This is not the right user format on our servers. Make sure you use the correct name. Again, you cannot grant execute permissions to yourself.
     
  9. Change the scripts?

    I haven't spent much time looking at them, and it is a PITA, but why not simply remove the GRANT EXECUTE lines from the scripts?
     
  10. the point to fix this upgrade issue

    On dnn5.x, it will not use db user "dbo" for database manager. Normally, table will be called as format like "db.schema.table" or "db.dbuser.table". The default db user for all databases is "dbo".

    For above error "system.Data.SqlClient.SqlException: Cannot find the user 'SQL2008_user', because it does not exist or you do not have permission. "

    Solution: create another db login "SQL2008_user" with db user "SQL2008_user", update connection string and restart the upgrade.

    Hope this could help you!
     
Thread Status:
Threads that have been inactive for 5 years or longer are closed to further replies. Please start a new thread.

Share This Page